list comprehension python filter random

时间:2013-08-02 12:41:27

标签: python list list-comprehension

我有这个脚本:

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文件,我想要它做的是写一个字符串“what”如果字符串超过30个字符。现在它只写出长度不超过30个字符的结果,如果结果是3个字符串,它只会从0到2写入,如[0:2],依此类推。

感谢您的时间。

1 个答案:

答案 0 :(得分:1)

替换此行:

scris = [x for x in test if len(x) <= 30]

scris = [len(x) <= 30 and x or 'whatever' for x in test]