Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何用python在列表中存储(类型和时间)?_Python - Fatal编程技术网

如何用python在列表中存储(类型和时间)?

如何用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] 在这种情况下,您有两种选择来存储数字

您好,我想创建一个同时存储类型和时间属性的列表。类型将是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]
在这种情况下,您有两种选择来存储数字和该数字的类型(奇数/偶数)。您可以使用列表列表或元组列表来存储它们

如果你想使用元组列表

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=苹果。如果您发布代码,它将更好地指示您的意图。这相当于扩展而不是追加,考虑到您使用的是元组,您应该使用追加,没有理由直接使用我想要的列表。非常感谢。