有没有更简单的方法将列表中的字符串项连接成一个字符串?
我可以使用该str.join()功能加入列表中的项目吗?
例如,这是输入['this','is','a','sentence'],这是所需的输出this-is-a-sentence
sentence = ['this','is','a','sentence']
sent_str = ""
for i in sentence:
sent_str += str(i) + "-"
sent_str = sent_str[:-1]
print sent_str
Run Code Online (Sandbox Code Playgroud) 加入清单:
>>> ''.join([ str(_) for _ in xrange(10) ])
'0123456789'
Run Code Online (Sandbox Code Playgroud)
join 必须采取迭代.
显然,join这个论点是[ str(_) for _ in xrange(10) ],这是一个列表理解.
看这个:
>>>''.join( str(_) for _ in xrange(10) )
'0123456789'
Run Code Online (Sandbox Code Playgroud)
现在,join这个论点只是str(_) for _ in xrange(10),不[],但结果是一样的.
为什么?是否str(_) for _ in xrange(10)也会产生一个列表或一个可迭代?
请考虑使用此Python代码打印逗号分隔值列表
for element in list:
print element + ",",
Run Code Online (Sandbox Code Playgroud)
打印的首选方法是什么,如果element是列表中的最后一个元素,则不会出现逗号.
前
a = [1, 2, 3]
for element in a
print str(element) +",",
output
1,2,3,
desired
1,2,3
Run Code Online (Sandbox Code Playgroud) 我是python的新手,并且有一个long列表,我想将它们连接成一个逗号分隔的字符串.
在PHP中,我会做这样的事情:
$output = implode(",", $array)
Run Code Online (Sandbox Code Playgroud)
在Python中,我不知道如何做到这一点.我尝试过使用join,但这不起作用,因为元素是错误的类型(即不是字符串).我是否需要创建列表的副本并将副本中的每个元素从long转换为字符串?或者有更简单的方法吗?
我有一个int列表,想要创建一个逗号分隔的字符串.下列:
x = [3, 1, 4, 1, 5]
y = ",".join(x)
Run Code Online (Sandbox Code Playgroud)
给出错误:
TypeError: sequence item 0: expected string, int found
Run Code Online (Sandbox Code Playgroud)
如何创建字符串?我可以手动将每个元素从int转换为字符串,将其插入到新列表中,然后在这个新列表上进行连接,但我想知道是否有更清晰的解决方案.
如何最好地将Python中的列表列表转换为(例如)逗号分隔值,换行分隔行,字符串?理想情况下,我可以执行以下操作:
>import csv
>matrix = [["Frodo","Baggins","Hole-in-the-Ground, Shire"],["Sauron", "I forget", "Mordor"]]
> csv_string = csv.generate_string(matrix)
>print(csv_string)
Frodo,Baggins,"Hole-in-the-Ground, Shire"
Sauron,I forget,Mordor
Run Code Online (Sandbox Code Playgroud)
我知道Python有一个CSV模块,如在做题像这样,但是它的所有功能似乎一个文件对象进行操作。列表足够小,以至于使用文件是多余的。
我熟悉的加入功能,并有大量的SO答案吧。但这不会处理包含逗号的值,也不会处理多行,除非我将a嵌套join在另一个行中join。
如何格式化正则表达式的输出或以特定格式返回正则表达式输出。
例如:我有一个程序test_program:5.4.3.2.11111
我只想获得这个值:5.4.3.2.11111
如果我使用这个功能:
import re
get_number = "test_program:5.4.3.2.11111"
number = re.findall('\d+', get_number)
Run Code Online (Sandbox Code Playgroud)
输出是:
['5', '4', '3', '2', '11111']
Run Code Online (Sandbox Code Playgroud)
但由于格式不正确,我无法将其传递给另一个变量。
我用过这样的东西:
['5', '4', '3', '2', '11111']
Run Code Online (Sandbox Code Playgroud)
并且输出格式正确,但是如果任何数字更改,例如5将更改为10或11111将更改为1111112,这将无法正常工作。
有没有更好的解决方案可以以正确的格式从字符串中获取数字,并且不会发生变化?
python ×7
string ×3
join ×2
list ×2
csv ×1
printing ×1
python-2.7 ×1
python-3.x ×1
stringio ×1