如何在python中的任何变量中同时迭代str和int

如何在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个名字和车

我从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个名字和车号一样,想要在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)