因此,我尝试让我的计数在元组中看到是就加1。我的问题是它仍然返回0。是否应该使用for循环遍历每个项目?
year = input ("enter a year")
count = 0
t = (("Steve"), ("Carell"), (16, "August", 1962),
"Actor", ("Concord", "Massachusetts"))
if year in t:
count += 1
print(count)
print (t) #just a check
预期结果 输入:1962 输出:1
答案 0 :(得分:3)
由于t是一个元组的元组,您需要遍历每个元组并查找该元组中年份的出现。同一元组中也可能有2次年,因此您需要遍历内部元组中的每个元素。 元组包含整数和字符串,因此我们无法将字符串与整数进行比较,因此在与年份进行比较之前将元素转换为字符串
year = input ("enter a year")
count = 0
t = (("Steve"), ("Carell"), (16, "August", 1962),
"Actor", ("Concord", "Massachusetts"))
for tup in t:
for ele in tup:
if year == str(ele):
count += 1
print(count)
答案 1 :(得分:1)
您也可以尝试以下代码。
def get_count(t, year):
count = 0
for item in t:
if type(item) is str:
if year in item:
count += 1
elif type(item) is tuple:
if int(year) in item or year in item:
count += 1
elif type(item) is int:
if int(year) == item:
count += 1
return count
# START
if __name__ == "__main__":
# INPUT 1
year = input("Enter a year")
t = (("Steve"), ("Carell"), (16, "August", 1962),
"Actor", ("Concord", "Massachusetts"))
count = get_count(t, year)
print(count)
# INPUT 2
year = input("Enter a year")
t = (("Steve"), ("Carell", 1962), (16, "August", 1962),
"Actor", ("Concord", "Massachusetts"))
count = get_count(t, year)
print(count) # 2
# INPUT 3
year = input("Enter a year")
t = (("1962"), ("Carell", 1962), (16, "August", 1962),
"Actor", ("Concord", "Massachusetts"), 1962)
count = get_count(t, year)
print(count) # 4
答案 2 :(得分:1)
通过列表理解用一行代码解决它怎么办?
year = input ("enter a year")
t = (("Steve"), ("Carell"), (16, "August", 1962),
"Actor", ("Concord", "Massachusetts"))
print(len([j for k in t for j in k if j == year]))
答案 3 :(得分:0)
如果它深深地嵌入另一个嵌套中怎么办?建议使用正则表达式。您可以使用re.search
:
import re
year = input ("enter a year: ")
count = 0
t = (("Steve"), ("Carell"), (16, "August", 1962),
"Actor", ("Concord", "Massachusetts"))
if re.search(year,str(t)):
count += 1
print(count)
答案 4 :(得分:-1)
您介意尝试此操作吗?
count = 0
year = 1962
tuples = (("Steve"), ("Carell"), (16, "August", 1962),
"Actor", ("Concord", "Massachusetts"))
for tuple in tuples:
if str(year) in str(tuple):
count += 1
print(count)