Я пытаюсь добавить значения в моем кортеже, чтобы получить общую цифру с кодом ниже
Black = (("Hans","100"),("Frank","20.5"))
for v in Black:
print(v[1])
print (v[1]+v[1])
Но когда я делаю это таким образом, это объединяет значения, такие как 100100, а не общий показатель значений
2 ответа
У вас есть два варианта:
1) Снять кавычки со значений в кортеже:
Black = (("Hans",100),("Frank",20.5))
for v in Black:
print(v[1])
print (v[1]+v[1])
2) Преобразовать строки, чтобы плавать во время цикла:
Black = (("Hans","100"),("Frank","20.5"))
for v in Black:
print(v[1])
print (float(v[1])+float(v[1]))
3) Если ваша цель - сумма всех значений индекса [1] в вашем списке списков:
Black = (("Hans",100),("Frank",20.5))
sum([x[1] for x in Black])
Вот один из способов:
Black = (("Hans","100"),("Frank","20.5"))
res = sum(float(num) for name, num in Black)
# 120.5
Альтернативный метод с использованием zip
:
res = sum(map(float, list(zip(*Black))[1]))
# 120.5
Похожие вопросы
Новые вопросы
python
Python - это многопарадигмальный, динамически типизированный, многоцелевой язык программирования. Он разработан для быстрого изучения, понимания и использования, а также для обеспечения чистого и единообразного синтаксиса. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Тем не менее, для вопросов о Python, связанных с версией, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas и NumPy) включите его в теги.