Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/366.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/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 将字符串列表转换为元组列表_Python_List_Tuples - Fatal编程技术网

Python 将字符串列表转换为元组列表

Python 将字符串列表转换为元组列表,python,list,tuples,Python,List,Tuples,我有一个字符串列表如下 ['40799\t1890\t11-16-15\n', '40800\t1890\t11-17-15\n', '40801\t1890\t11-18-15\n', '40802\t1890\t11-19-15\n'] 要转换如下所示 [('40799',1890,'11-16-15'), ('40800',1890,'11-17-15'), ('40801',1890,'11-18-15'), ('40802',1890,'11-19-15')] Tab是每列的分隔

我有一个字符串列表如下

['40799\t1890\t11-16-15\n', '40800\t1890\t11-17-15\n', '40801\t1890\t11-18-15\n', '40802\t1890\t11-19-15\n']
要转换如下所示

 [('40799',1890,'11-16-15'), ('40800',1890,'11-17-15'), ('40801',1890,'11-18-15'), ('40802',1890,'11-19-15')]

Tab是每列的分隔符。我能够使用一些循环进行转换。但是我想知道是否可以使用单个命令转换列表,因为列表可能有很多项

>>> data = ['40799\t1890\t11-16-15\n', '40800\t1890\t11-17-15\n', '40801\t1890\t11-18-15\n', '40802\t1890\t11-19-15\n']
>>> [(x, int(y), z) for x, y, z in (line.split() for line in data)]
[('40799', 1890, '11-16-15'), ('40800', 1890, '11-17-15'), ('40801', 1890, '11-18-15'), ('40802', 1890, '11-19-15')]
输出:

[('40799', '1890', '11-16-15'), ('40800', '1890', '11-17-15'), ('40801', '1890', '11-18-15'), ('40802', '1890', '11-19-15')]

@KegsRo可能重复,但不是包含integers@KegsRO好吧,我猜它确实包含整数,但这与“列表可能有很多项”的问题不同。你可以使用列表理解,但这不会使它比循环更快,循环中的行数也与列表中的项目数无关。谢谢!我看两者都一样。这看起来更漂亮,因为所有的项目都是字符串对我来说是可以的。@sjd那么为什么你在发布输出时都没有字符串,下次再问正确的问题question@MaheshKaria请不要使用
\u
,因为变量名就是这个方法(下面也是一个)当考虑到速度时,与使用循环真的不同吗?@sjd所有东西都必须使用循环,就速度而言,你可能应该一行一行地处理并输出到一个新文件,但我不确定你的东西是什么结构。我给了你投票权,因为OP现在说他们不关心所有字符串的输出,即使最初的输出希望第二个索引是一个整数,而PEP8说不要使用
l
作为变量name,你应该把它修好谢谢你的建议,我已经修好了。然而,如果你有一个解释和一个否决票,那就更好了。请养成习惯。好的社会是在有人帮助纠正错误而不仅仅是判决的情况下形成的。
[('40799', '1890', '11-16-15'), ('40800', '1890', '11-17-15'), ('40801', '1890', '11-18-15'), ('40802', '1890', '11-19-15')]
>>> data = ['40799\t1890\t11-16-15\n', '40800\t1890\t11-17-15\n', '40801\t1890\t11-18-15\n', '40802\t1890\t11-19-15\n']
>>> [tuple(line.split()) for line in data]
[('40799', '1890', '11-16-15'), ('40800', '1890', '11-17-15'), ('40801', '1890', '11-18-15'), ('40802', '1890', '11-19-15')]