Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:将元组iterable转换为字符串iterable_Python_Sqlite - Fatal编程技术网

Python:将元组iterable转换为字符串iterable

Python:将元组iterable转换为字符串iterable,python,sqlite,Python,Sqlite,我从sqlite3 select语句中得到一个元组的iterable,我想将这个iterable赋予一个需要字符串iterable的函数。如何重写下一个函数以给出元组的第一个索引?或者更准确地说,什么是正确的蟒蛇式方法 >>> res = conn.execute(query,(font,)) >>> train_counts = count_vect.fit_transform(res) AttributeError: 'tuple' object has

我从sqlite3 select语句中得到一个元组的iterable,我想将这个iterable赋予一个需要字符串iterable的函数。如何重写下一个函数以给出元组的第一个索引?或者更准确地说,什么是正确的蟒蛇式方法

>>> res = conn.execute(query,(font,))
>>> train_counts = count_vect.fit_transform(res)

AttributeError: 'tuple' object has no attribute 'lower'
编辑:

由于映射涉及迭代整个列表,因此所需时间是Niklas提供的构建生成器所需时间的两倍

第一个= l=列表 对于xrange10中的i: l、 附录:, 对于i[0]中的j,对于l中的i: J 秒= l=列表 对于xrange10中的i: l、 附录:, 转换为字符串=lambda t:%d%t strings=mapconvert_to_string,l 对于字符串中的j: J 第三= l=列表 对于xrange10中的i: l、 附录:, 字符串=[t[0]表示l中的t] 对于字符串中的j: J 打印Niklas B.%f%timeit.Timerfirst.timeit 打印%f%timeit.Timersecond.timeit 打印Richard Fearn 2%f%timeit.Timerthird.timeit >>> 尼古拉斯B.4.744230 理查德·费恩12.016272 理查德·费恩212.041094
您需要编写一个函数,将每个元组转换为字符串;然后可以使用map将元组序列转换为字符串序列

例如:

假设每个元组包含3个整数 res=1,2,3,4,5,6 将3整数元组x、y、z转换为格式为x-y-z的字符串 将\u转换为\u字符串=λt:%d-%d-%d%t 将每个元组转换为字符串 strings=mapconvert_to_string,res 调用与前面相同的函数,但使用字符串序列 序列计数=计数向量拟合字符串 如果需要每个元组中的第一项,则函数可以是:

转换为字符串=lambda t:t[0] 假设第一个元素已经是字符串

实际上,在这种情况下,您可以完全避免lambda并使用列表理解:

strings=[t[0]表示以res表示的t]
简单的解决方案是使用生成器表达式:

count_vect.fit_transform(t[0] for t in res)

您也可以对初始map/lambda位使用列表理解:strings=[%d-%d%x,y,z代表res中的x,y,z]@NiklasB。请将您的评论作为答案发表,为了公平起见,我将接受您的评论:Python 3中的map与生成器表达式一样懒惰: