2014-06-26 75 views
-5

所以我有点新来python,并给出了一个问题,如下所示: 给定列表名称,找到列表中最大的元素,并将其与最后一个元素交换。例如,名单[“卡尔顿”,“昆西”,“亚当”,“伯纳德”]将成为[“卡尔顿”,“伯纳德”,“亚当”,“昆西”]。假设名字不是空列表中的Python名称

我想过做列表理解,但我不知道我怎么会写出来代码

编辑:最大在这种情况下将是字符串的长度(对不起,不澄清!!!))

+0

你说'找到列表中最大的元素'。在这种情况下,“最大”是什么? – dawg

+0

信息不足。 – user2963623

+0

你的例子不正确。 – user2963623

回答

1
names = [foo, fooooo, bar, baaar] 
a, b = i.index(max(name, key=len)), -1 
i[b], i[a] = i[a], i[b] 

致谢this

1

如果最大,你的意思是最长,那么你可以迭代列表来找到最长的名字,然后交换它们。

maxLen = 0 
maxI = 0 
for i in range(0, len(names)): 
    if len(names[i]) > maxLen: 
     maxLen = len(names[i]) 
     maxI = i 

temp = names[-1] 
names[-1] = names[maxI] 
names[maxI] = temp 

这是一个过分复杂的做法,但它很容易让人更容易理解发生了什么。有了这个说法,你应该更具体地说明“最大”的含义。