小编nr.*_*r.o的帖子

Python在排序时访问列表

我可以在列表中进行排序时访问列表吗? list.sort()

b = ['b', 'e', 'f', 'd', 'c', 'g', 'a']
f = 'check this'

def m(i):
    print i, b, f
    return None

b.sort(key=m)
print b
Run Code Online (Sandbox Code Playgroud)

这回来了

b [] check this
e [] check this
f [] check this
d [] check this
c [] check this
g [] check this
a [] check this
Run Code Online (Sandbox Code Playgroud)

请注意,列表的各个项目将b发送到功能m.但是在m列表中b是空的,但它可以看到变量f,其范围与列表相同b.为什么功能m打印b[]

python sorting list python-internals

15
推荐指数
1
解决办法
388
查看次数

使用另一个索引列表对列表进行排序

特定

a = [1,4,5,3,2,6,0]
b = ['b','e','f','d','c','g','a']
Run Code Online (Sandbox Code Playgroud)

为了b到位,预期的顺序b是在相应位置元件可用a.

输出将是

['a','b','c','d','e','f','g']
Run Code Online (Sandbox Code Playgroud)

尝试其他类似的输入集.

a = [4,0,1,3,2]
b = ['E','A','B','D','C']
Run Code Online (Sandbox Code Playgroud)

我可以得到它使用第三列表完成,甚至sorted()创建第三列表,但关键是要排序b到位

print sorted(b,key=lambda bi : a[b.index(bi)])
Run Code Online (Sandbox Code Playgroud)

问题的核心是如何防止迭代b已经迭代过的项目.

python sorting algorithm list

0
推荐指数
2
解决办法
112
查看次数

标签 统计

list ×2

python ×2

sorting ×2

algorithm ×1

python-internals ×1