我有這樣的腳本:列表理解Python的過濾器隨機
test = [
'listen<SP>'+tags+'<SP>online<SP>for<SP>free,',
'<SP>listen<SP>'+tags+'<SP>online,',
'<SP>listen<SP>'+tags+'<SP>song,',
'<SP>listen<SP>'+tags+'<SP>putlocker,',
'<SP>download<SP>'+tags+'<SP>song,',
'listen<SP>'+tags+'<SP>free<SP>streaming,',
'<SP>listen<SP>'+tags+'<SP>song<SP>free,',
'<SP>listen<SP>'+tags+'<SP>online<SP>song,',
'<SP>download<SP>'+tags+'<SP>full<SP>song,',
'listen<SP>'+tags+'<SP>online<SP>free,',
'<SP>download<SP>'+tags+'<SP>2013<SP>song,',
'<SP>listen<SP>online<SP>'+tags+'<SP>for<SP>free,',
'<SP>listen<SP>'+tags+'<SP>free<SP>full<SP>song,',
'listen<SP>'+tags+'<SP>online<SP>2013,',
'<SP>where<SP>to<SP>listen<SP>'+tags+',',
'<SP>'+tags+'<SP>full<SP>song<SP>online,',
''+tags+'<SP>online<SP>free,',
'<SP>listen<SP>'+tags+'<SP>free<SP>2013,',
''+tags+'<SP>full<SP>song<SP>online,',
'<SP>free<SP>streaming<SP>'+tags+',',
'<SP>listen<SP>'+tags+'<SP>2013,',
'<SP>listen<SP>'+tags+'<SP>free,',
'<SP>hear<SP>'+tags+'<SP>online,',
'<SP>'+tags+'<SP>online,',
'hear<SP>'+tags+',',
'<SP>listen<SP>'+tags+',',
'<SP>'+tags+'<SP>free,',
'<SP>free<SP>'+tags+',',
'<SP>'+tags+'<SP>online,',
'<SP>online<SP>'+tags+',',
'<SP>'+tags+',']
random.shuffle(test)
scris = [x for x in test if len(x) <= 30]
scris_fisiere = scris[0:7]
row_test.append(allitems)
fisier_text_tags.writerow(row_test)
正如你可以看到它隨機和只寫有30個字符長到CSV文件的結果,我希望它做的是如果字符串長度超過30個字符,則寫一個字符串「whatever」。現在它只寫入長度小於30個字符的結果,如果結果是3個字符串,它只會像[0:2]一樣從0到2等寫入。
謝謝你的時間。
你能改一下你的問題請,它不清楚你在說什麼。 –
事實上,我的理解是,在列表理解中,如果字符串的長度超過30個字符,則要將字符串替換爲另一個字符串,但在此之後,我完全丟失了字符串。也許你應該讓示例列表更短並且完全可執行(標籤的值是多少;) –