gpt4 book ai didi

python - 使用列表名称作为字符串来访问列表

转载 作者:太空狗 更新时间:2023-10-30 01:55:06 24 4
gpt4 key购买 nike

我有一个包含数据的文件,我想根据第一列中的值将其分成不同的列表。我确切地知道第一列中的可能值是什么,但它们没有任何很好的数学级数。有没有更短的方法来编写以下代码?

x0=[]
y0=[]
x2=[]
y2=[]
x16=[]
y16=[]
# etc.

for line in file:
words=line.split()
if words[0] == '0':
x0.append(words[1])
y0.append(words[2])
elif words[0] == '2':
x2.append(words[1])
y2.append(words[2])
elif words[0] == '16':
x16.append(words[1])
y16.append(words[2])
# etc.

我的思考过程如下,但我定义的字符串(x 和 y)显然是字符串,并没有引用回我希望它们引用的列表。

x0=[]
y0=[]
x2=[]
y2=[]
x16=[]
y16=[]
# etc

for line in file:
words=line.split()
x='x'+words[0]
y='y'+words[0]
x.append(words[1])
y.append(words[2])

更新:我意识到可以用字典来做到这一点,我的值将是列表的列表,但主要是我很好奇是否有一种 pythonic 方法来按照我概述的思路进行编码以上。

最佳答案

使用 defaultdict而不是一堆单独的值。

from collections import defaultdict
extracted_values = defaultdict(list)
for line in file:
words = line.split()
extracted_values['x' + words[0]].append(words[1])
extracted_values['y' + words[0]].append(words[2])

然后您只需通过字典键而不是变量名来访问您的值。

extracted_values['x0']
extracted_values['y1']

关于python - 使用列表名称作为字符串来访问列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15369354/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com