我有一个问题,每次运行时我只想得到最多包含30个字符的字符串。
import random
test=["test1 up to 30 characters",
"test2 passing 30 characters easy",
"test3 up to 30 characters",
"test4 passing 30 characters easy"]
random.shuffle(test)
if len(test[0]) <= 30:
print test[0]
elif len(test[0]) >= 30:
print "Shit"
print len(test[0])
编辑:********************************************************
在测试中,我会有一个变量,看起来像这样:
import random
test=["test1 up to "+variable+" characters",
"test2 passing "+variable+" characters easy",
"test3 up to "+variable+" characters",
"test4 passing "+variable+" characters easy"]
random.shuffle(test)
if len(test[0]) <= 30:
print test[0]
elif len(test[0]) >= 30:
print "Shit"
print len(test[0])
这个变量将是一个混合字符数,从5到我不知道,比方说10。
我希望程序从列表中选择最多包含30个字符的字符串。您的解决方案只需打印出包含最多30个字符的字符串的解决方案即可。我希望它返回并在列表中找到每次为每个变量总共输出30个字符串的字符串。我真的希望你能理解,我很难理解自己。
已编辑***************************************
好的,我做了这个:
import random
test=["test1 up to 30 characters",
"test2 passing 30 characters easy",
"test3 up to 30 characters",
"test4 passing 30 characters easy"]
random.shuffle(test)
print [x for x in test[0:1] if len(x) < 30]
它做了我想做的事,但仍然有空白,比如空的[]
使用列表理解:
print [x for x in test if len(x) < 30]
不能同时拥有好的<=
和坏的>=
,也就是说,不能同时拥有这两者的=
。从本质上讲,第二个if
应该只是else
,因为如果它不小于或等于30,还剩下什么?