我正在尝试使用以下名称制作100个列表:list1,list2,list3等。基本上我想要做的是下面(虽然我知道它不起作用我只是不确定为什么)。< / p>
num_lists=100
while i < num_lists:
intial_pressure_{}.format(i) = []
centerline_temperature_{}.format(i) = []
然后我想循环遍历从文件插入数据的每个列表,但我不确定如何在该循环中更改列表的名称。因为我知道这不起作用。
while i < num_lists:
initial_pressure_i[0] = value
我确定我想要做的事情非常简单,但我对python的体验只有几天。任何帮助表示赞赏。 感谢
答案 0 :(得分:5)
您可以在列表中创建100个列表,而不是创建100个列表变量。只是做:
list_of_lists = [[] for _ in xrange(100)]
然后,您可以通过执行以下操作访问列表中的列表:
list_of_lists[0] = some_value # First list
list_of_lists[1] = some_other_value # Second list
# ... and so on
答案 1 :(得分:2)
欢迎使用Python!
阅读你对你要做的事情的评论,我建议放弃你目前的做法。选择一个更容易使用的数据结构。
假设您有一个文件列表:
files = ['data1.txt', 'data2.txt',...,'dataN.txt']
现在您可以依次遍历这些文件:
data = {}
for file in files:
data[file] = {}
with open(file,'r') as f:
lines=[int(line.strip()) for line in f]
data[file]['temps'] = lines[::2] #even lines just read
data[file]['pressures'] = lines[1::2] #odd lines
然后你会有一个像这样的列表的词典:
{'data1.txt': {'temps': [1, 2, 3,...], 'pressures': [1,2,3,...]},
'data2.txt': {'temps': [x,y,z,...], 'pressures': [...]},
...}
然后你就可以得到你的最大值:
max(data['data1.txt']['temps'])
这样你就可以看到数据的样子,运行它:
data = {}
for i in range(100):
item = 'file' + str(i)
data[item] = {}
kind_like_file_of_nums = [float(x) for x in range(10)]
data[item]['temps'] = kind_like_file_of_nums[0::2]
data[item]['pres'] = kind_like_file_of_nums[1::2]
print(data)
答案 2 :(得分:1)
你可以制作一份列表字典。以下是in a similar thread:
的示例>>> from collections import defaultdict
>>> d = defaultdict(list)
>>> for i in a:
... for j in range(int(i), int(i) + 2):
... d[j].append(i)
...
>>> d
defaultdict(<type 'list'>, {1: ['1'], 2: ['1', '2'], 3: ['2']})
>>> d.items()
[(1, ['1']), (2, ['1', '2']), (3, ['2'])]