我有三个清单:
EX_Num = [1.0, 2.0, 3.0]
Height_str = ['tall', 'medium', 'short']
total_carbon = [8.425169446611104, 8.917085904771866, 6.174348482965436]
如何制作column1 = EX_Num
,column2 = Height_str
和column3 = total_carbon
的嵌套列表?
答案 0 :(得分:0)
目前尚不清楚你在问什么......但如果你只想要一份清单清单,只需追加即可。
>>> nested_list.append(EX_Num)
>>> nested_list.append(Height_str)
>>> nested_list.append(total_carbon)
>>> nested_list
[[1.0, 2.0, 3.0], ['tall', 'medium', 'short'], [8.425169446611104, 8.917085904771866, 6.174348482965436]]
如果您希望将所有值放入一个列表中,只需将它们连接起来即可。
>>> nested_list = EX_Num + Height_str + total_carbon
>>> nested_list
[1.0, 2.0, 3.0, 'tall', 'medium', 'short', 8.425169446611104, 8.917085904771866, 6.174348482965436]
如果您需要不同的东西,则需要更清楚地提出问题。]
根据评论编辑:
如果您知道所有列表的长度相同:
nested_list = []
# be careful, if the lists aren't all the same length, you will get errors
for x in range(len(EX_Num)):
tmp = [EX_Num[x], Height_str[x], total_carbon[x]]
nested_list.append(tmp)
答案 1 :(得分:0)
您可以使用内置的zip
函数将多个iterables连接到元组中:
ex = [1.0, 2.0, 3.0]
height = ['tall', 'medium', 'short']
total_carbon = [8.4, 8.9, 6.1]
joint = zip(ex, height, total_carbon)
print(joint)
# [(1.0, 'tall', 8.4), (2.0, 'medium', 8.9), (3.0, 'short', 6.1)]
注意:请不要对您的变量名称使用“匈牙利表示法”(_num
,_str
等) - 它们只是杂乱无章,特别在像Python这样的动态语言中。
如果您需要将相关数据组合在一起,则为其创建简单的容器类型更具可读性。 namedtuple
非常适合:
from collections import namedtuple
Thing = namedtuple('Thing', ['ex', 'height', 'total_carbon'])
my_things = [Thing(*t) for t in zip(ex, height, total_carbon)]
现在您可以按名称引用内容 - 例如my_things[0].height
- 而不需要记住每个属性的索引位置。