如何根据Python中的值对数据进行排序?

时间:2018-10-15 14:32:51

标签: python sorting dictionary

  

Data =“像{'A':12345}这样的好员工在当今世界上至关重要,尤其是在艰难的经济时代,有很多寻求工作的人。因此,请务必牢记,没有任何员工是不可替代的像{'B':1234}和{'C':123}“

我要将上述数据转换为

  

数据=“像{'C':123}这样的好员工在当今世界上至关重要,尤其是在有许多寻求工作的艰难经济时期。因此,请务必牢记,没有一个员工是不可替代的像{'B':1234}和{'A':12345}“

段落中要说的意思必须根据值进行排序。有什么办法吗?

1 个答案:

答案 0 :(得分:0)

首先提取字符串dictionaries及其位置,以便我们用enumerate填充目标。然后解开元组,得到两个带有索引的列表,一个带有我们将排序的值的列表。使用包含数字的子字符串的int对值进行排序之后。然后zip将重新排序的列表与索引一起返回,然后将它们重新插入到数据列表中,然后.join()对其进行

vals = [(i, v) for i, v  in enumerate(data.split()) if '{' in v]
x = list(zip(*vals))
x[1] = sorted(x[1], key=lambda x: int(x.strip('}').split(':')[-1]))
y = list(zip(x[0], x[1]))
data = data.split()
for i in y:
    data[i[0]] = i[1]
print(' '.join(data))
A good employee like {'C':123} is essential in today’s world, especially in these tough economic times when there are many seeking work. Consequently, it is important to keep in mind that no employee is irreplaceable like {'B':1234} and {'A':12345}