我一直在学习 Python 并使用 Project Euler 来修复我的一些数学技能。我遇到了问题 35的问题。我已经生成了 100 万以下的所有素数,消除了包含任何偶数的素数,现在我只是尝试用剩余的约 3k 素数进行最后一次检查。
该功能应该:
- 列出约 3k 个素数。
- 返回一个新列表,该列表由原始列表中每个项目的所有旋转列表组成。
这就是我所拥有的,以及我对每一行的理解:
def rotations(lst):
newlist = []
for i in lst: # Take each int item in list.
s = [int(j) for j in str(i)] # Turn each item into a list of digit strings
num = ([s[k:]+s[:-len(s)+k] for k in range(len(s))]) # Generate list of rotations of strings
tmplst = []
for l in num: # For each string rotation
tmplst.append(int(''.join(map(str,l)))) # Turn it into an integer, add that int to tmplst
newlist.append(tmplst) # Add each tmplist to 'newlist'
return newlist
仅输入rotations([123,456])
产生:
[[123, 231, 312]]
当我期待
[[123, 231, 312],[456,564,645]]
任何可能出现问题的线索?