三國(guó)紛爭(zhēng)
2021-03-29 10:45:41
我是Python的新手,但我遇到了這個(gè)問(wèn)題我有一個(gè)這樣的數(shù)字列表:n = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47]我想從11到37打印,這意味著輸出= 11、13 ..... 37。我嘗試過(guò),print(n[11:37])但是它當(dāng)然會(huì)打印[37、41、43、47],因?yàn)槟鞘欠秶饕?。有什么想法嗎,Python是否為此提供了任何內(nèi)置方法?
3 回答

梵蒂岡之花
TA貢獻(xiàn)1900條經(jīng)驗(yàn) 獲得超5個(gè)贊
這應(yīng)該做的工作...
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)
想要將其打印為逗號(hào)分隔的字符串:
print(mylist.strip('[]'))

藍(lán)山帝景
TA貢獻(xiàn)1843條經(jīng)驗(yàn) 獲得超7個(gè)贊
這將起作用。(假設(shè)列表已排序)
print n[n.index(11): n.index(37)+1]
輸出:
[11, 13, 17, 19, 23, 29, 31, 37]

猛跑小豬
TA貢獻(xiàn)1858條經(jīng)驗(yàn) 獲得超8個(gè)贊
使用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])))
添加回答
舉報(bào)
0/150
提交
取消