把一系列的数字改成列表,python

2024-10-06 12:20:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我得到了一系列的数字,我想把它们作为逗号分隔的数字放入python列表或元组中。我一直在研究stacked,但也许我找不到正确的方式来表达我的问题,因为我一直在寻找方法将元组转换成列表,反之亦然。在

这就是我所拥有的。我收到一封电子邮件,上面有一系列这样的数字(但还有几百个):

417985
417986
417987
417988
417989
417990

我将使用数据库中的数字进行查询,因此:

^{pr2}$

在python中有没有方法可以转换这个数字序列,以便在查询中输入逗号分隔的值?仅供参考,我做了很多python,所以这就是我的专长所在,不管有没有其他方法我都很感兴趣。在


Tags: 方法数据库列表方式序列数字元组逗号
2条回答

如果要在SQL查询中使用这些数字,则需要生成SQL参数,而不是生成查询字符串。在

你可以读懂你的行,然后把它变成一个整数序列(列表就可以了):

numbers = [int(line) for line in email_lines]

然后生成一个查询,其中每个值都有足够的占位符:

^{pr2}$

在这里,我假设您使用的数据库连接器使用?作为SQL参数占位符;它也可以是%s。在

现在,您可以向数据库请求匹配行:

cursor.execute(statement, numbers)

通过使用SQL参数,您可以免费获得一些东西:

  • 正确引用和转义值。这里不太重要,因为您已经将所有内容转换为整数,但最好不要自己转义和引用值;您几乎肯定会错过一些东西。在
  • 缓存查询计划的重用;数据库只需解析一次statement查询,并且可以将结果重新用于后续查询。在

如果要复制并粘贴这些数字,请键入以下内容:

email_lines = """\
<paste your lines with numbers>
""".splitlines()

然后将我的答案中的第一行应用到结果中。在

这也许是你想要的吗?在

raw = """417985
417986
417987
417988
417989
417990"""

numbers = [int(n) for n in raw.split()]

>> numbers_int
[417985, 417986, 417987, 417988, 417989, 417990]

或者你想构造一个字符串

^{pr2}$

相关问题 更多 >