考虑以下代码,该代码根据其他列表内容对列表进行排序。
我的问题与排序列表有关我想为每个元素分配一个名称并打印排序的名称而不是元素任何帮助
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)
答案 0 :(得分:3)
要为列表的每个元素指定名称,您应该使用dictionary
代替。
以下是一个例子:
a = {'apple': 2, 'banana': 4, 'watermelon': 5}
字典采用{key:value, key:value, key:value, ...}
您可以在字典中获得与其value
对应的key
。在上面的示例中,您将执行以下操作:
>>> print a['apple']
2
>>> a['banana']+a['watermelon']
5
您可以按如下方式访问字典keys
,values
或两者:
>>> 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))