为了账号安全,请及时绑定邮箱和手机立即绑定

如何将元组分成两个独立的列表?

如何将元组分成两个独立的列表?

幕布斯6054654 2021-11-16 14:39:08
我想将以下元组分成两个列表(('happy', 5.001), ('neutral', 10.004), ('neutral', 15.006), ('happy', 20.071),  ('fear', 25.071))我希望我的列表如下所示:a = ('happy', 'neutral', 'neutral', 'happy', 'fear')b = (5.001, 10.004, 15.006, 20.071, 25.071)该split()方法不适用于此。
查看完整描述

3 回答

?
白衣染霜花

TA贡献1796条经验 获得超10个赞

你的新英雄,zip功能来了!

l = (('happy', 5.001), ('neutral', 10.004), ('neutral', 15.006), ('happy', 20.071), ('fear', 25.071))
a, b = zip(*l)

对于未来的使用,我们可以说它在两种不同的模式下工作:

  • zip(*iterable)生成n 个可迭代对象(即n是可迭代对象中每个元组的大小),其中每个可迭代对象包含每个元组的第 i 个元素(我的答案示例)。

  • zip(iterable_1, ..., iterable_n)生成一个可迭代对象,其中每个元素都是一个大小为n的元组,其中包含相应索引处每个可迭代对象的元素。


查看完整回答
反对 回复 2021-11-16
?
守候你守候我

TA贡献1802条经验 获得超10个赞

t = (('happy', 5.001), ('neutral', 10.004), ('neutral', 15.006), ('happy', 20.071), ('fear', 25.071))
a, b = zip(*t)


查看完整回答
反对 回复 2021-11-16
?
不负相思意

TA贡献1777条经验 获得超10个赞

t = (('happy', 5.001), ('neutral', 10.004), ('neutral', 15.006), ('happy', 20.071), ('fear', 25.071))
a = [x[0] for x in t]
b = [x[1] for x in t]

这使用列表理解来解决问题。它使用't'中每个元组的第一个元素(索引0)创建列表'a',同时使用第二个元素(索引1)创建列表'b'。


查看完整回答
反对 回复 2021-11-16
  • 3 回答
  • 0 关注
  • 339 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信