我有一个要写入csv文件的字符串列表。列表list_results
看起来像
['False, 60, 40 ', 'True, 70, 30, ']
所以,我会尝试这样的事情:
with open('example1.csv', 'w') as result:
writer = csv.writer(result, delimiter=",")
writer.writerow( ('Correct?', 'Successes', 'Failures') )
writer.writerows(list_results)
不幸的是,数据没有写入三列。我发现:
['Correct?', 'Successes', 'Failures']
['F', 'a', 'l', 's', 'e', ',', ' ', '6', '0', ',', ' ', '4', '0', ' ']
['T', 'r', 'u', 'e', ',', ' ', '7', '0', ',', ' ', '3', '0', ',', ' ']
如何正确格式化此行为以获得
['Correct?', 'Successes', 'Failures']
['False', 60, 40]
['True', 70, 30]
最好采用格式%s %d %d
?
您正在使用writer.writerows()
与s
结尾。该方法需要一个 lists列表
,但是您传入了一个字符串列表。该writerows()
方法实质上是这样做的:
def writerows(self, rows):
for row in rows:
self.writerow(row)
其中每一行必须是一列列。字符串是单个字符的序列,因此这就是您所写的:单个字符由您选择的定界符分隔。
您需要将字符串分成几列,不要自己包括逗号,writer对象的工作是包括以下内容:
with open('example1.csv', 'w') as result:
writer = csv.writer(result, delimiter=",")
writer.writerow(('Correct?', 'Successes', 'Failures'))
for row in list_results:
columns = [c.strip() for c in row.strip(', ').split(',')]
writer.writerow(columns)
或使用生成器表达式,以便您可以继续使用writerows()
:
with open('example1.csv', 'w') as result:
writer = csv.writer(result, delimiter=",")
writer.writerow(('Correct?', 'Successes', 'Failures'))
writer.writerows([c.strip() for c in r.strip(', ').split(',')]
for r in list_results)
演示:
>>> import csv
>>> list_results = ['False, 60, 40 ', 'True, 70, 30, ']
>>> import csv
>>> import sys
>>> list_results = ['False, 60, 40 ', 'True, 70, 30, ']
>>> writer = csv.writer(sys.stdout)
>>> writer.writerow(('Correct?', 'Successes', 'Failures'))
Correct?,Successes,Failures
>>> for row in list_results:
... columns = [c.strip() for c in row.strip(', ').split(',')]
... writer.writerow(columns)
...
False,60,40
True,70,30
>>> writer.writerows([c.strip() for c in r.strip(', ').split(',')]
... for r in list_results)
False,60,40
True,70,30
问题内容: 每当出现“”时,我都尝试拆分字符串,例如语句test abc。然后,将每个单词中的第一个字母从头到尾移动。我将字母移动到使用原始字符串 所以我的问题是,我将如何分割字符串,然后开始在分割字符串的每个部分中移动字母? 问题答案: 您不必为此进行-transform-join;一步就能做到。 正则表达式基本上分为3组: 那么,作为替换字符串使它明显和清晰,切换和周围。 因此,应该清楚的是,
String 类的 split() 方法可以按指定的分割符对目标字符串进行分割,分割后的内容存放在字符串数组中。该方法主要有如下两种重载形式: 其中它们的含义如下: str 为需要分割的目标字符串。 sign 为指定的分割符,可以是任意字符串。 limit 表示分割后生成的字符串的限制个数,如果不指定,则表示不限制,直到将整个目标字符串完全分割为止。 使用分隔符注意如下: 1)“.”和“|”都是转
本文向大家介绍Java分割字符串,包括了Java分割字符串的使用技巧和注意事项,需要的朋友参考一下 示例 您可以分割String特定的分隔字符或正则表达式,可以使用具有以下签名的方法:String.split() 请注意,定界字符或正则表达式将从结果字符串数组中删除。 使用分隔字符的示例: 使用正则表达式的示例: 您甚至可以直接拆分String文字: 警告:不要忘记该参数始终被视为正则表达式。 在
这道题是 LeetCode 131 题。 给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串。返回 s 所有可能的分割方案。 示例: 输入: "aab" 输出: [ ["aa","b"], ["a","a","b"] ] 解法一:回溯法 使用递归实现,在每一层中,使用一个 for 循环判断每个长度的前缀是否是回文串。如果是,将其添加到结果中,进入下一层。直到字符串为空串,这
问题内容: 我有一个字符串如下: 我想提取数字:872226816,因此在这种情况下,我假设在第二个逗号开始读取数据之后,随后的逗号结束数据读取。 输出示例: 问题答案: 用于String.split()的 Javadoc
问题内容: 我有一个像这样的字符串: 我想拆分该字符串并选择作为分隔符。 我的代码如下所示: 我得到的是一个包含所有字符作为一个条目的数组: 有人知道为什么吗? 我不能用分割字符串吗? 问题答案: 在RegEx中被视为。因此,您需要对其进行转义: