繁体   English   中英

如何在python中为列表的每个元素指定一个名称

[英]How to assign a name to each element of a list in python

请考虑以下代码,该代码根据其他列表内容对列表进行排序。
我的问题与排序列表有关我想为每个元素分配一个名称并打印排序的名称而不是元素任何帮助

 Processes = input("   Enter the  processes times & arrival times separated by a comma: ")
 BurstTimes = Processes[::2]
 ArrivalTimes = Processes[1::2]
 print '   Burst Times:', BurstTimes, '\n', '   Arrival Times', ArrivalTimes,'\n',
 list1, list2 =  BurstTimes, ArrivalTimes
 indices1 = range(len(list1))
 indices1.sort(key=lambda x: list2[x])
 list1 = map(lambda i: list1[i], indices1)
 print 'The Processes executed in this order: ', list1 

例如,输入列表包含元素19 14 36如何为每个元素分配一个名称,例如A表示第一个元素,B表示第二个元素,C表示第三个元素,输出是排序列表(14,19,36),但是控制台上的打印列表我希望它是(B,A,C)

要为列表的每个元素指定名称,您应该使用dictionary

这是一个例子:

a = {'apple': 2, 'banana': 4, 'watermelon': 5}

字典的形式为{key:value, key:value, key:value, ...}

您可以在字典中获取与其key对应的value 在上面的示例中,您将执行以下操作:

>>> print a['apple']
2
>>> a['banana']+a['watermelon']
5

您可以按如下方式访问字典的keysvalues或两者:

>>> a.keys()
['apple', 'banana', 'watermelon']

>>> a.values()
[2,4,5]

>>> a.items()
[('apple', 2), ('banana', 4), ('watermelon', 5)]

但是,您必须注意,字典不会被排序,并以任何被认为更有效的方式包含数据。 如果您可以关于元素的顺序,请使用OrderedDict

要从两个列表中创建一个字典,您可以:

my_dict = dict(zip(list1, list2))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM