2017-04-25 51 views
1

我需要做一個數字列表。這些數字代表二進制掩碼。前100個左右的面具都包含在這個範圍內。在下一組口罩中,只包含某些口罩。我需要一個類似於以下的列表。Python 3與範圍和其他個人號碼列表

[1,2,3,5,6,7,8,9,10,30,34,48,53,62] 

我可以這樣做[range(1,10),30,34,48,53,62]

還是需要使用範圍(1,10)創建我的列表,然後下一個列表追加到它?

感謝

回答

0

Python 3里居然允許你建立文字前面加上一個*任何可迭代的對象列表 - 這是又擴大了地方:

>>> [1,2, *range(10), *range(2)] 
[1, 2, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1] 

如果您需要這款N舊的蟒蛇,或者如果您希望爲那些可能不需要遍歷代碼的人提供可讀性,則可以選擇使用+運算符連接不同的列表片段:

a = list(range(1,10)) + [ 30,34,48,53,62] 
+0

讓我修改我的問題有點,因爲我不知道這會有所作爲,但似乎。我正在使用它來填充字典中的值。 {「onState」:[* range(1,65),45,52,54] 它不會讓我在賦值語句以外的任何地方使用「*」。 – turboc

+0

你當然可以做'{「onState」:[* range(1,65),42,52,54]}'列表文字所允許的語法不會改變,不管你放置文字的地方如何。 – jsbueno

0

貌似我不得不使用名單(範圍(1,10)+ [47,34,57] 解決方案