[英]How to convert a list of strings representing tuples to tuples of integers?
[英]How can I sort a list of strings representing tuples?
我有一个表示元组的字符串列表,如下所示:
['(q2,0)', '(q3,0)', '(q0,0)', '(q1,0)', '(q4,0)']
有没有办法通过访问每个q后的数字对它进行排序,以便列表如下所示:
[ '(q0,0)', '(q1,0)', '(q2,0)', '(q3,0)', '(q4,0)']
如果这些是整数会很容易,但是我需要保持现在的字符串格式......
您可以根据您定义的键进行排序:
def my_key(value):
return int(value.strip('()').split(',')[0][1:])
用法:
>>> values = ['(q2,0)', '(q3,0)', '(q0,0)', '(q1,0)', '(q4,0)']
>>> values.sort(key=my_key)
['(q0,0)', '(q1,0)', '(q2,0)', '(q3,0)', '(q4,0)']
你可以在第一个“,”分割字符串,使用partition
然后strip
“(q”通过提供“键”功能自定义排序
lst = ['(q12,0)', '(q3,0)', '(q0,0)', '(q1,0)', '(q4,0)']
sorted(lst, key=lambda item: int(item.partition(',')[0].strip('(q')))
# '(q0,0)', '(q1,0)', '(q3,0)', '(q4,0)', '(q12,0)']
lt = ['(q2,0)', '(q3,0)', '(q0,0)', '(q1,0)', '(q4,0)']
lt.sort(key=lambda st : int(st[2]) )
print(lt)
结果
['(q0,0)','(q1,0)','(q2,0)','(q3,0)','(q4,0)']
#st = '(q2,0)'
#st[2] = '2'
#int(st[2]) = 2
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.