如何用python在列表中存储(类型和时间)?
您好,我想创建一个同时存储类型和时间属性的列表。类型将是a或b。时间在0和100之间是随机的。例如l[0]=(a,5)。我知道如何创建列表,但我不知道如何创建。希望您能提供帮助。您可以在列表中存储列表,也可以在列表中存储元组 让我们在这里举一个简单的例子来解释上述评论。假设我们要存储数字和数字类型(“偶数”或“奇数”)如何用python在列表中存储(类型和时间)?,python,Python,您好,我想创建一个同时存储类型和时间属性的列表。类型将是a或b。时间在0和100之间是随机的。例如l[0]=(a,5)。我知道如何创建列表,但我不知道如何创建。希望您能提供帮助。您可以在列表中存储列表,也可以在列表中存储元组 让我们在这里举一个简单的例子来解释上述评论。假设我们要存储数字和数字类型(“偶数”或“奇数”) “E”=偶数:是2的倍数 “O”=奇数个not 假设我们有一个从1到10的数字列表 l= [1,2,3,4,5,6,7,8,9,10] 在这种情况下,您有两种选择来存储数字
- “E”=偶数:是2的倍数
- “O”=奇数个not
l= [1,2,3,4,5,6,7,8,9,10]
在这种情况下,您有两种选择来存储数字和该数字的类型(奇数/偶数)。您可以使用列表列表或元组列表来存储它们
如果你想使用元组列表
listOfTuples= []
for x in l:
if x%2==0:
listOfTuples+=[(x,'E')] #Equivalent to listTypes.append((x,'E'))
else:
listOfTuples+=[(x,'O')] #Equivalent to listTypes.append((x,'O'))
print listOfTuples
结果:
[(1, 'O'), (2, 'E'), (3, 'O'), (4, 'E'), (5, 'O'), (6, 'E'), (7, 'O'), (8, 'E'), (9, 'O'), (10, 'E')]
[[1, 'O'], [2, 'E'], [3, 'O'], [4, 'E'], [5, 'O'], [6, 'E'], [7, 'O'], [8, 'E'], [9, 'O'], [10, 'E']]
如果你想使用列表列表
listOfLists= []
for x in l:
if x%2==0:
listOfLists+=[[x,'E']] #Equivalent to listTypes.append((x,'E'))
else:
listOfLists+=[[x,'O']] #Equivalent to listTypes.append((x,'O'))
print listOfLists
结果:
[(1, 'O'), (2, 'E'), (3, 'O'), (4, 'E'), (5, 'O'), (6, 'E'), (7, 'O'), (8, 'E'), (9, 'O'), (10, 'E')]
[[1, 'O'], [2, 'E'], [3, 'O'], [4, 'E'], [5, 'O'], [6, 'E'], [7, 'O'], [8, 'E'], [9, 'O'], [10, 'E']]
元组和列表之间的选择不应该太天真。两者之间有一个区别,元组速度快,内存效率高。但是,一旦创建元组,就不能对其进行编辑,因为它是不可变的。另一方面,列表是可变的,您可以编辑它们
通过直接指定新值,可以重新编辑列表列表
listOfLists[3][0]="test"
结果将是:
[[1, 'O'], [2, 'E'], [3, 'O'], ['test', 'E'], [5, 'O'], [6, 'E'], [7, 'O'], [8, 'E'], [9, 'O'], [10, 'E']]
但是,如果使用元组存储对象,则可以这样做:
listOfTuples[3][0]="test"
您将得到以下错误:
Traceback (most recent call last):
File "test.py", line 30, in <module>
listOfTuples[3][0]="test"
TypeError: 'tuple' object does not support item assignment
回溯(最近一次呼叫最后一次):
文件“test.py”,第30行,在
listOfTuples[3][0]=“测试”
TypeError:“tuple”对象不支持项分配
有关python中元组和列表之间差异的更多信息,请查看此项。欢迎使用SO。请发布您到目前为止的代码。谢谢您,先生。我还没有开始学习任何东西,因为我正在尝试学习python。如果您给我一个如何继续的想法,我将能够想出一些东西。类型a,b的性质是什么!它是变量的类型吗?或者您已经创建的类型?类型a或b只是一种指示。例如,如果水果是苹果或橙色。a=橙色,b=苹果。如果您发布代码,它将更好地指示您的意图。这相当于扩展而不是追加,考虑到您使用的是元组,您应该使用追加,没有理由直接使用我想要的列表。非常感谢。