簡體   English   中英

如何從導出的python列表中刪除逗號,引號和括號?

[英]How do I remove the commas, quotes, and parentheses from an exported python list?

你們對我最后一個新手問題非常有幫助所以我想我會再拍一次。 現在,我的Python 3代碼從CSV文件中獲取數據,將數據存儲為列表,創建該數據的排列,然后將其導出回列格式的新csv文件中。 不幸的是,導出列表的格式並不是我所需要的最佳格式。 我的問題是:如何從python中導出的列表中刪除逗號,括號和括號?

它現在看起來如何:

('你好','世界','如何')

('你好','世界','是')

('你好','如何','世界')

我希望它看起來如何:

你好世界如何

你好世界是

你好世界

這是我正在使用的代碼,有沒有人有任何建議或意見? 我正在努力學習,所以任何額外的見解將不勝感激!

import csv
import itertools
with open('/users/Desktop/pythondata.csv', 'r') as f:
   reader = csv.reader(f)
   J = []
   for row in reader:
      J.extend(row)
C = list(itertools.permutations(J, 3))
with open('THISISATEST.csv','w')as f:
   writer=csv.writer(f,lineterminator='\n')
   for val in C:
       writer.writerow([val])`

PS - 請原諒我,如果格式不正確,我是新手!

你的問題:

我建議您只使用join方法獲取您要查找的單個字符串。 你可以嘗試:

with open('test.csv', 'w') as a_file:
    for result in C:
        result = ' '.join(result)
        a_file.write(result + '\n')

基本上,調用字符串' ' (單個空格)的join方法將獲取其參數中的每個項目(來自排列的單個結果),並將它們一起添加到單個字符串中,該字符串由第一個字符串(單個字符串)分隔空間)。 該網站提供了一個簡單的說明性示例。

使用語法'[separator]'.join([list of items to join])調用join方法,因此如果您只想將所有內容混合成一個沒有空格的字符串,則可以在空字符串上調用它: ''.join([my list])

由於您不需要逗號分隔文件(CSV),因此只需使用如圖所示的a_file.write方法即可簡化操作。 如果您在此代碼中使用CSV編寫器,則每個字母之間都會顯示逗號。

我不知道你是否知道正則表達式,但使用python的' re '模塊應該可以提供你想要的東西:

    import re
    strs = "('Hello', 'World', 'How')"

    #creates list of strings that match the regular expression
    words = re.findall(r"\'([A-Za-z]+)\'", strs)

    #joins all of the elements of the word array into a string separated by a space
    outputString = " ".join(words)

    #output is "Hello World How"
    print outputString

由於你有元組,有一種更簡單的方法。 您不需要csv來導出以空格分隔的文件。

import csv
import itertools
with open('pythondata.csv', 'r') as f:
    reader = csv.reader(f)
    J = []
    for row in reader:
        J.extend(row)
C = itertools.permutations(J, 3)
with open('THISISATEST.txt','w') as f:
    f.write('\n'.join(' '.join(y for y in x) for x in C))

如果還有人在嘗試這個時仍在搜索,(python 3.x)。 我的目標是在單獨的行上列出9位數字的所有可能排列。

line string = ''.join(str(char) for char in line)是贏家

import sys, itertools

f = open('path to file', 'w') #I was using a .txt file

permutations = (list(itertools.permutations([1,2,3,4,5,6,7,8,9], 9)))

for line in permutations:
    string = ''.join(str(char) for char in line)
    f.write(string + '\n')            

f.close()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM