我有一段python代码,它从数据库表中的一行中获取数据并将其转换为列表。我从表中得到2个字符串字段。我想把它变成一个看起来像这样的列表:
a_list = [('Tom', 23), ('Dick', 45), ('Harry', 33)]
所以给出:
name = 'Tom'
age = '23'
我试图连接这样的项目:
nextItem = "("+name+","+int(age)+")'
代码错误说你无法连接str和int数据类型。
有人能提供能满足我需求的代码吗?
答案 0 :(得分:1)
如果您想将名称存储为字符串,将年龄存储为数字,则可以执行此操作
a_list.append((name,int(age)))
如果你想让它们都成为字符串,你可以只format
a_list.append("{},{}".format(name,age)
或使用以下语法连接它们
a_list.append("("+name+","+str(age)+")")
但第一个变种可能是其中最好的。
总而言之,无法连接整数和字符串!
答案 1 :(得分:0)
而不是
nextItem = "("+name+","+int(age)+")'
在这里你不能将字符串连接成一个整数,你可以很好地格式化字符串:
nextItem = '({},{})'.format(name, age)
但是如果你想得到这个元组列表:
a_list = [('Tom', 23), ('Dick', 45), ('Harry', 33)]
你必须保持age
一个整数:
a_list.append((name, age))
答案 2 :(得分:0)
要根据数据类型打印每个变量,您可以格式化字符串,如下所示:
print "name : %s age : %d " % (name, age)
如果您需要创建列表,请使用:
nameagelist.append((name, age))
假设年龄是整数值。
答案 3 :(得分:0)
您可以使用列表理解来替换您从名称和年龄中获得的任何内容:
a_list = [(name,int(age)) for name,age in whatever]