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']
答案 0 :(得分:2)
这是另一个,只是有选择:
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]]
答案 1 :(得分:1)
像这样:
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']
答案 2 :(得分:1)
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
答案 3 :(得分:0)
如果手头的任务是手动编码;
创建一个列表,我们将使用该列表将数据断言到最后。这将用于存储您想要的列表的新订单
order_list = []
我们插入数据的第一个和第二个元素,因为它没有被操纵或重新排序。
order_list.append(data[0])
order_list.append(data[1])
现在我们检查数据[2]和数据[4]
中哪个更大if data[2] > data[4]:
order_list.append(data[2])
else:
order_list.append(data[2])
然后使用数据元素3和5重复此操作。
然后,您可以按data = order_list
将新列表指定为数据,或者返回新列表。
如果任务不要求你这样做;有一个内置函数max(),它返回传递给函数
的两个元素中最大的一个答案 4 :(得分:0)
如果您希望交换列表中的项目,而不是仅设置为max,则以下代码有效:
def swap(list, i, j):
buffer = list[i]
list[i] = list[j]
list[j] = buffer
return list
data = ['10', '0', '1915', '387', '1933', '402']
print(data)
if data[4] > data[2]:
swap(data, 4, 2)
if data[5] > data[3]:
swap(data, 5, 3)
print(data)