我在一個名為“DNASeq.txt”的文件中有一個包含 DNA 行的文件。我需要一個代碼來讀取每一行并在整行的隨機位置(插入空格)拆分每一行。每條線需要在不同的地方拆分。例如:我有:AAACCCHTHTHDAFHDSAFJANFAJDSNFADKFAFJ 我需要這樣的東西:AAA ADSF DFAFDDSAF ADF ADSF AFD AFAD我已經嘗試過(?。。?python 非常陌生?。。篿mport randomfor x in range(10): print(random.randint(50,250))但這會打印隨機數。有沒有辦法讓隨機數像變量一樣生成?
3 回答

呼如林
TA貢獻1798條經驗 獲得超3個贊
import random
with open('source', 'r') as in_file:
with open('dest', 'w') as out_file:
for line in in_file:
newLine = ''.join(map(lambda x:x+' '*random.randint(0,1), line)).strip() + '\n'
out_file.write(newLine)
既然你提到是新人,我會試著解釋一下
為了預防起見,我正在將新序列寫入另一個文件。寫入您正在讀取的文件是不安全的。
with 構造函數使您無需顯式關閉您打開的文件。
可以使用 for 循環逐行讀取文件。
''.join() 將列表轉換為字符串。
map() 將函數應用于列表的每個元素,并將結果作為新列表返回。
lambda 是你定義一個函數而不命名它的方式。
lambda x: 2*x
你喂它的數量翻倍。x + ' ' * 3 在 x 后添加 3 個空格。random.randint(0, 1) 返回 1 或 0。所以我隨機選擇是否在每個字符后添加一個空格。如果 random.randint() 返回 0,則添加 0 個空格。
添加回答
舉報
0/150
提交
取消