Python代码创建一个包含逗号分隔字符串和int括在括号中的列表?

时间:2015-01-28 14:37:12

标签: python string list int

我有一段python代码,它从数据库表中的一行中获取数据并将其转换为列表。我从表中得到2个字符串字段。我想把它变成一个看起来像这样的列表:

a_list = [('Tom', 23), ('Dick', 45), ('Harry', 33)]

所以给出:

name = 'Tom'
age = '23'

我试图连接这样的项目:

nextItem = "("+name+","+int(age)+")'

代码错误说你无法连接str和int数据类型。

有人能提供能满足我需求的代码吗?

4 个答案:

答案 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]