Don't understand, what it means : TypeError: can only concatenate str (not "list") to str
Don't understand, what it means : TypeError: can only concatenate str (not "list") to str
在开始描述问题之前,我需要说明一下,英语不是我的母语,因此,不幸的是,我可能会犯很多错误。感谢理解!
favourite_places = {
'Paris':['Jake','Carl'],
'London':'Jake',
'Moscow':'Fred',
}
for username,user_info in favourite_places.items():
print('======================')
print('Place: ' + username)
print('Who likes it: ' + user_info)
错误:
Type of error: TypeError: can only concatenate str (not "list") to str
我现在真的不知道该如何解决。当我清除 ['Carl']
时,程序开始工作,但我需要 ['Carl']
。请帮助
您正在尝试打印“谁喜欢它:[杰克,卡尔]”
不出所料,python 不喜欢这样...
试试这个:
favourite_places = {
'Paris':['Jake','Carl'],
'London':['Jake'],
'Moscow':['Fred'],
}
for username,user_info in favourite_places.items():
print('======================')
print('Place: ' + username)
users = ""
for user in user_info:
users = users + user + ", "
users = users[:len(users)-2] #Ach, sure we'll stick this in too to clean up the last trailing comma & space we don't want
print('Who likes it: ' + users)
制作所有字典值列表,以便在需要时可以将它们全部连接起来:
favourite_places = {
'Paris': ['Jake','Carl'],
'London': ['Jake'],
'Moscow': ['Fred'],
}
然后当您需要打印列表时,使用 f 字符串:
print(f'Who likes it: {user_info}')
将您的列表项加入一个字符串:
favourite_places = {
'Paris':['Jake','Carl'],
'London':['Jake'],
'Moscow':['Fred']
}
for username,user_info in favourite_places.items():
print('======================')
print('Place: ' + username)
print('Who likes it: ' + ', '.join(user_info))
错误语句说明了一切:您只能将 str(而不是“列表”)连接到 str。
您应该更改您的字典,以便每个值都是一个列表,以便使用一致的数据。
但是,采用懒惰的方式,您 可以 也可以像下面最后一行那样简单地使用 f-string :
for username,user_info in favourite_places.items():
print('======================')
print('Place: ' + username)
print(f"Who likes it: {user_info}")
输出:
======================
Place: Paris
Who likes it: ['Jake', 'Carl']
======================
Place: London
Who likes it: Jake
======================
Place: Moscow
Who likes it: Fred
在开始描述问题之前,我需要说明一下,英语不是我的母语,因此,不幸的是,我可能会犯很多错误。感谢理解!
favourite_places = {
'Paris':['Jake','Carl'],
'London':'Jake',
'Moscow':'Fred',
}
for username,user_info in favourite_places.items():
print('======================')
print('Place: ' + username)
print('Who likes it: ' + user_info)
错误:
Type of error: TypeError: can only concatenate str (not "list") to str
我现在真的不知道该如何解决。当我清除 ['Carl']
时,程序开始工作,但我需要 ['Carl']
。请帮助
您正在尝试打印“谁喜欢它:[杰克,卡尔]”
不出所料,python 不喜欢这样...
试试这个:
favourite_places = {
'Paris':['Jake','Carl'],
'London':['Jake'],
'Moscow':['Fred'],
}
for username,user_info in favourite_places.items():
print('======================')
print('Place: ' + username)
users = ""
for user in user_info:
users = users + user + ", "
users = users[:len(users)-2] #Ach, sure we'll stick this in too to clean up the last trailing comma & space we don't want
print('Who likes it: ' + users)
制作所有字典值列表,以便在需要时可以将它们全部连接起来:
favourite_places = {
'Paris': ['Jake','Carl'],
'London': ['Jake'],
'Moscow': ['Fred'],
}
然后当您需要打印列表时,使用 f 字符串:
print(f'Who likes it: {user_info}')
将您的列表项加入一个字符串:
favourite_places = {
'Paris':['Jake','Carl'],
'London':['Jake'],
'Moscow':['Fred']
}
for username,user_info in favourite_places.items():
print('======================')
print('Place: ' + username)
print('Who likes it: ' + ', '.join(user_info))
错误语句说明了一切:您只能将 str(而不是“列表”)连接到 str。
您应该更改您的字典,以便每个值都是一个列表,以便使用一致的数据。
但是,采用懒惰的方式,您 可以 也可以像下面最后一行那样简单地使用 f-string :
for username,user_info in favourite_places.items():
print('======================')
print('Place: ' + username)
print(f"Who likes it: {user_info}")
输出:
======================
Place: Paris
Who likes it: ['Jake', 'Carl']
======================
Place: London
Who likes it: Jake
======================
Place: Moscow
Who likes it: Fred