Создание кортежа с переменной и логическим значением Python - PullRequest
0 голосов
/ 06 мая 2020

Я должен добавить переменную и логическое значение в новый кортеж - фактическое присвоение приведено ниже с моим кодом. Я знаю, что кортежи неизменяемы - я впервые попытался их создать. Кроме того, я ничего не могу найти о вставке переменной и логического значения. Заранее спасибо!

Мой код только что создал новый список. Это желаемый результат:

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

Назначение :

Строковый модуль предоставляет последовательности Python символов различных типов. Он имеет атрибут, называемый цифрами, который создает строку «0123456789». Импортируйте модуль и присвойте эту строку переменной nums. Ниже мы предоставили список символов, называемых символами. Используя числа и символы, создайте список с именем is_num, состоящий из кортежей. Первым элементом каждого кортежа должен быть символ из chars, а второй элемент должен быть логическим, который отражает, является ли это Python di git.

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)

1 Ответ

1 голос
/ 06 мая 2020

Вы можете использовать для этого понимание списка, которое похоже на более краткое for l oop, которое создает новый список

>>> 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)]

Это было бы эквивалентно следующему l oop

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)]

Обратите внимание, что проверка содержания выполняется с использованием in против string.digits

>>> digits
'0123456789'
>>> '7' in digits
True
>>> 'b' in digits
False
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...