Python 如何操作我的列表?

Python 如何操作我的列表?,python,list,Python,List,这就是我掌握的数据。 我想要的是比较数据[2]和数据[4] 数据[3]与数据[5] 并将较大数据[2]或数据[4]的值放入数据[2]中 与数据[3]和数据[5]相同 所以这个例子的最终结果是: data = ['10', '0', '1915', '387', '1933', '402'] 如果手头的任务是手动编码 创建一个列表,我们将使用该列表在末尾向其断言数据。这将用于存储所需列表的新顺序 ['10', '0', '1933', '402', '1915', '382'] 我们插入数据的

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

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

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

如果手头的任务是手动编码

创建一个列表,我们将使用该列表在末尾向其断言数据。这将用于存储所需列表的新顺序

['10', '0', '1933', '402', '1915', '382']
我们插入数据的第一个和第二个元素,因为它没有被操纵或重新排序

order_list = []
现在我们检查数据[2]和数据[4]中哪个更大

order_list.append(data[0])
order_list.append(data[1])
然后对数据元素3和5重复此操作

然后,您可以通过data=order\u list或返回新列表,将该新列表指定为数据

如果任务不要求您这样做;有一个内置函数max,它返回传入函数的两个元素中最大的元素,如下所示:

if data[2] > data[4]:
    order_list.append(data[2])
else:
    order_list.append(data[2])
这是输出:

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']

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

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

你熟悉马克斯吗?我想有个打字错误。382就是387吗?这是您的代码输出['10','0','402','387','1933','1915'],请在正确的数组上运行。['10','0','1933','387','1915','402']这是输出['10','0','387','402','0','1915']@user9282640您没有复制并粘贴应答者的代码。
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
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]]