【发布时间】:2011-11-03 14:51:26
【问题描述】:
我有一系列如下所示的列表:
li1 = ['a.1', 'b.9', 'c.8', 'd.1', 'e.2']
li2 = ['a.4', 'b.1', 'c.2', 'd.2', 'e.4']
如何重新排列每个列表中的项目,以便第一项是“b.something”?对于上面的例子:
li1 = ['b.9', 'a.1', 'c.8', 'd.1', 'e.2']
li2 = ['b.1', 'a.4', 'c.2', 'd.2', 'e.4']
在第一个项目之后保持顺序并不重要。感谢您的帮助。
【问题讨论】:
-
我不确定,但您可能会对这个问题感兴趣:stackoverflow.com/questions/2436607/…
-
只是想知道为什么每个人都使用
s.startwith('b'),而不是s[0] == 'b'。有什么性能优势吗?如果不是,我想保存我大脑的长期记忆使用。 -
@yosukesabai:只有一个答案使用
s.startwith('b')。其他人使用s.startwith('b.'),就像问题中要求的那样。 -
@IgnacioVazquez-Abrams:对不起,我想说的是
s.startwith('b.')vss[:2] == 'b.'。第一个优于第二个,如果是,在什么意义上? -
@yosukesabai:嗯,对于单个元素,
startswith不会在空字符串上崩溃。对于多个字符,除了阅读更好之外,我没有看到任何优势(好吧,您可以指定开始/停止和替代方案,但这里不需要)。