我如何操作我的列表?

2024-04-25 12:58:30 发布

您现在位置:Python中文网/ 问答频道 /正文

data = ['10', '0', '1915', '387', '1933', '402']

这就是我掌握的数据。 我想要的是比较data[2]data[4]data[3]data[5]data[2]中放入较大的data[2]data[4]的值 与data[3]data[5]相同

所以这个例子的最终结果是:

['10', '0', '1933', '402', '1915', '382']

Tags: 数据data例子
3条回答

像这样:

data = ['10', '0', '1915', '387', '1933', '402']

# Convert strings to int
result = [int(i) for i in data]

# sorted works with numeric values.
# This uses tuple unpacking, even though sorted returns a list
result[2], result[4] = sorted([result[2], result[4]], reverse=True)  
result[3], result[5] = sorted([result[3], result[5]], reverse=True)

# cast ints back to str as per spec
result = [str(i) for i in result]

这是输出:

>>> data = ['10', '0', '1915', '387', '1933', '402']
... 
... # Convert strings to int
... result = [int(i) for i in data]
... 
... # sorted works with numeric values.
... # This uses tuple unpacking, even though sorted returns a list
... result[2], result[4] = sorted([result[2], result[4]], reverse=True)  
... result[3], result[5] = sorted([result[3], result[5]], reverse=True)
... 
... # cast ints back to str as per spec
... result = [str(i) for i in result]
>>> result
['10', '0', '1933', '402', '1915', '387']

这是另一个,只是为了有选择:

swap = [(2, 4), (3, 5)]

for s in swap:
    if int(data[s[1]]) > int(data[s[0]]):
        data[s[0]], data[s[1]] = data[s[1]], data[s[0]]
for i in range(2, len(data),2):
    if i+2 < len(data) and data[i+2] > data[i]:
        temp  = data[i]
        data[i] = data[i+2]
        data[i+2] = temp

相关问题 更多 >