如何在python中的任何变量中同时迭代str和int
我从sql查询中获得一些名称和车号,并希望在我的另一个“msg”变量中迭代它们如何在python中的任何变量中同时迭代str和int,python,for-loop,while-loop,Python,For Loop,While Loop,我从sql查询中获得一些名称和车号,并希望在我的另一个“msg”变量中迭代它们 car_no = <class 'int'> names = <class 'str'> input sample: names & car_no jhon 198 pig 144 carlet 36 Mona 144 rahul 510 car\u no= 姓名= 输入示例:名称和车号 约翰 198 猪 144 小轿车 36 蒙纳 144 拉胡尔 510 就像有100个名字和车
car_no = <class 'int'>
names = <class 'str'>
input sample: names & car_no
jhon
198
pig
144
carlet
36
Mona
144
rahul
510
car\u no=
姓名=
输入示例:名称和车号
约翰
198
猪
144
小轿车
36
蒙纳
144
拉胡尔
510
就像有100个名字和车号一样,想要在msg中重复所有这些名字和车号。(msg是用于发送邮件给收件人(HTML格式))
所需输出为:
<html>
<head></head>
<body>
<p>Dear jhon</p>
<p>your bday list:</br>
jhon - 199</br>
pig - 144</br>
carlet -36</br>
mona - 144</br>
rahul - 510</br
<p>
Thanks</br>
</p>
</body>
</html>
亲爱的约翰
您的B日期列表:
jhon-199
猪-144
卡莱特-36
蒙纳-144
rahul-510让你开始
import sqlite3
conn = sqlite3.connect("file::memory:")
cursor = conn.cursor()
queries = "SELECT 'name' AS name, 1 as no",
def execute_query(query):
cursor.execute(query)
return cursor
list_part = '\n'.join(
f'<br>{name} - {no}</br>'
for q in queries
for name, no in execute_query(q)
)
print(list_part)
导入sqlite3
conn=sqlite3.connect(“文件::内存:”)
游标=连接游标()
querys=“选择“名称”作为名称,选择1作为编号”,
def执行_查询(查询):
cursor.execute(查询)
返回光标
列表\u部分='\n'。加入(
f'
{name}-{no}'
对于查询中的q
对于名称,执行查询(q)中没有
)
打印(列表\u部分)
如果您的数据按照您显示的方式对齐,那么这可能对您有用
from itertools import tee, islice
def chunks(seq, n):
s = iter(seq)
return zip(*(iter(s) for i in range(n)))
data = (
'name1', 1, 'name2', 2
)
list_part = '\n'.join(
f'<br>{name} - {no}</br>'
for name, no in chunks(data, 2)
)
print(list_part)
来自itertools导入三通,islice
def块(序号,n):
s=国际热核实验堆(序号)
返回zip(*(范围(n)内i的iter)
数据=(
'名称1',1',名称2',2
)
列表\u部分='\n'。加入(
f'
{name}-{no}'
对于名称,不分块(数据,2)
)
打印(列表\u部分)
我还没有读完整的问题,但是你试过zip
吗?是的,我试过zip(名称,车号),但没有成功步骤1:将所有数据放在一个列表中,步骤2:将列表转换为键值对,因为奇数索引是名称,偶数索引是数字,步骤3:使用本词典在HTML中添加所需的数据,让我知道你是怎么想的,还有很多其他的方法well@royal定义“不工作”。为我打印
name-1
。`list\u part='\n'。在执行查询(q)中的行的q查询中加入(f'{row[0]}-{row[1]},`keyrerror:0首先,您可能更改了我的代码。第二,我看到的唯一可以使用KeyError的地方是
行[0]
和行[1]
,因此您的版本可能希望使用列名而不是索引。您甚至可以使用更新的答案将行解压到理解中的值中(请参见更新的答案),名称为,执行查询中为no(q)
ValueError:解压的值不足(预期为2,得到1)
此错误即将发生。我想在输出中提到所需的输出,你能帮我顶吗that@royal这表示结果集中只有一列,而不是两列。你想达到什么目标?显示数据在数据库中的外观。
from itertools import tee, islice
def chunks(seq, n):
s = iter(seq)
return zip(*(iter(s) for i in range(n)))
data = (
'name1', 1, 'name2', 2
)
list_part = '\n'.join(
f'<br>{name} - {no}</br>'
for name, no in chunks(data, 2)
)
print(list_part)