我是Python的新手,但我遇到了这个问题我有一个这样的数字列表:n = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47]我想从11到37打印,这意味着输出= 11、13 ..... 37。我尝试过,print(n[11:37])但是它当然会打印[37、41、43、47],因为那是范围索引。有什么想法吗,Python是否为此提供了任何内置方法?
3 回答

梵蒂冈之花
TA贡献1900条经验 获得超5个赞
这应该做的工作...
n = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47]
n.sort()
mylist = [x for x in n if x in range(11, 38)]
print(mylist)
想要将其打印为逗号分隔的字符串:
print(mylist.strip('[]'))

蓝山帝景
TA贡献1843条经验 获得超7个赞
这将起作用。(假设列表已排序)
print n[n.index(11): n.index(37)+1]
输出:
[11, 13, 17, 19, 23, 29, 31, 37]

猛跑小猪
TA贡献1858条经验 获得超8个赞
使用numpy:
import numpy as np
narr = np.array(n)
m = (narr >= 11) & (narr <= 37)
for v in narr[m]:
print(v)
# or, to get rid of the loop:
print('\n'.join(map(str, narr[m])))
添加回答
举报
0/150
提交
取消