假设我有一个这样的列表。
a = [1, 23, 456, 6789]
而我想改变列表中每个位置的元素的位置。输出将是,每个数字都向上移动一个位置,直到字符串的末尾,然后移动到字符串的前面。
例如
1, 23, 32, 456, 645, 564, 6789, 9678, 8967, 7896
我知道如何使用单个数字或固定长度的字符串来执行此操作,但是当字符串不断改变长度时,我不知道该怎么做。
这是我目前所拥有的,但到目前为止,我在字符串的被调用单个元素上遇到了 op - 例如数字 4 - 在字符串中 - 564 - 已经在列表中。
for i in a:
for j in len(i):
print a[len(i)-j]
* 编辑 *
哎呀,发布得太早了。最终版本如上。
最佳答案
a = [1, 23, 456, 6789]
for i in map(str, a):
for j in range(len(i)):
print(i[j:]+i[:j])
内置函数 map
记录在 python.org 上。
如果数字的顺序是相关的,那么做:
import itertools
a = [1, 23, 456, 6789]
for i in map(str, a):
for j in itertools.chain(range(1),range(len(i)-1,0,-1)):
print(i[j:]+i[:j])
内置模块 itertools
的函数 chain
记录在 python.org 上。您也可以在没有 itertools.chain()
的情况下执行此操作,但这是我想到的第一件事。
关于python - 遍历具有不同长度字符串的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28547690/