簡體   English   中英

創建一個帶有變量和 Boolean Python 的元組

[英]Creating a Tuple with a variable and Boolean Python

我應該將一個變量和一個 boolean 添加到一個新的元組中——實際的賦值在下面,以及我的代碼。 我知道元組是不可變的——這是我第一次嘗試創建元組。 此外,我找不到任何關於插入變量和 boolean 的信息。提前致謝!

我的代碼剛剛創建了一個新列表。 這是期望的結果:

 [('h', False), ('1', True), ('C', False), ('i', False), ('9', True), ('True', False), ('3.1', False), ('8', True), ('F', False), ('4', True), ('j', False)]

作業

string模塊提供了Python個字符的各種類型的序列。 它有一個名為 digits 的屬性,它生成字符串“0123456789”。 導入模塊並將此字符串分配給變量 nums。 下面,我們提供了一個名為 chars 的字符列表。 使用 nums 和 chars,產生一個名為 is_num 的列表,它由元組組成。 每個元組的第一個元素應該是來自 chars 的字符,第二個元素應該是一個 Boolean 來反映它是否是一個 Python 數字。

import string
nums = string.digits
chars = ['h', '1', 'C', 'i', '9', 'True', '3.1', '8', 'F', '4', 'j']
is_num = []

for item in chars:
    if item in string.digits:
        is_num.insert(item, bool)

elif item not in string.digits:
    is_num.insert(item, bool)

您可以為此使用列表推導,這就像創建一個新列表的更簡潔for循環

>>> from string import digits
>>> chars = ['h', '1', 'C', 'i', '9', 'True', '3.1', '8', 'F', '4', 'j']
>>> is_num = [(i, i in digits) for i in chars]
>>> is_num
[('h', False), ('1', True), ('C', False), ('i', False), ('9', True), ('True', False), ('3.1', False), ('8', True), ('F', False), ('4', True), ('j', False)]

這相當於跟隨循環

is_num = []
for i in chars:
    is_num.append((i, i in digits))

>>> is_num
[('h', False), ('1', True), ('C', False), ('i', False), ('9', True), ('True', False), ('3.1', False), ('8', True), ('F', False), ('4', True), ('j', False)]

請注意,正在使用instring.digits進行包含檢查

>>> digits
'0123456789'
>>> '7' in digits
True
>>> 'b' in digits
False

最簡單的方法是您應該將 nums 放入列表中。 我的意思是 num =list(num) 在解析之前

import string
chars = ['h', '1', 'C', 'i', '9', 'True', '3.1', '8', 'F', '4', 'j']
    nums = string.digits
    nums = list(nums)
    is_num = []

for char in chars:
    if char in nums:
        is_num.append((char, True))
    else:
        is_num.append((char, False))
print(is_num)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM