打印字符串还是变量?
Print either a string or a variable?
这是我的代码:
from random import shuffle
def scramble(sentence):
split = sentence.split()
shuffle(split)
return ' '.join(split)
for i in range(20):
reply = ['hi',scramble('me too thanks')]
print(reply)
我正在尝试打印句子 "me too thanks" 的乱序版本或只是 "hi"。我最终得到的是:
['hi', 'me too thanks']
['hi', 'too thanks me']
['hi', 'thanks me too']
['hi', 'too thanks me']
['hi', 'me too thanks']
等等。它按预期工作,但当我只想打印一个或另一个时,它会将括号作为一个整体打印。我曾与其他程序一起工作,这通常可以正常工作,但出于某种原因并非如此。抱歉,如果这不是一个好问题,我对 python 比较陌生。
您的代码完全按照要求执行:打印结果,这是一个列表。要显示列表中的一个或另一个,请使用 random.choice
:
for i in range(20):
reply = ['hi',scramble('me too thanks')]
print(random.choice(reply))
Ajax1234 解决方案有效,但在 50% 的情况下会丢弃 scramble
的结果。它还创建了一个不必要的列表供选择。那是对 CPU 能力的浪费。
就这样:
for _ in range(20):
print('hi' if random.randint(0,1) else scramble('me too thanks'))
打印一个或另一个字符串是一个三元表达式。很酷的是,如果 random.randint(0,1)
returns 1
,scramble
根本不会执行
如果你有更多的案例,你可以随机选择一个函数,这样你就只执行你需要的那个,例如使用lambda
:
for _ in range(20):
reply = [lambda : 'hi',lambda:scramble('me too thanks'),lambda:'hello']
print(random.choice(reply)()) # note the calling of the chosen function with ()
试试这个:
from numpy as np
def scramble(sentence):
split = sentence.split()
np.random.shuffle(split)
return ' '.join(split)
for i in range(20):
reply = ['hi',scramble('me too thanks')]
print(np.random.choice(reply))
这是我的代码:
from random import shuffle
def scramble(sentence):
split = sentence.split()
shuffle(split)
return ' '.join(split)
for i in range(20):
reply = ['hi',scramble('me too thanks')]
print(reply)
我正在尝试打印句子 "me too thanks" 的乱序版本或只是 "hi"。我最终得到的是:
['hi', 'me too thanks']
['hi', 'too thanks me']
['hi', 'thanks me too']
['hi', 'too thanks me']
['hi', 'me too thanks']
等等。它按预期工作,但当我只想打印一个或另一个时,它会将括号作为一个整体打印。我曾与其他程序一起工作,这通常可以正常工作,但出于某种原因并非如此。抱歉,如果这不是一个好问题,我对 python 比较陌生。
您的代码完全按照要求执行:打印结果,这是一个列表。要显示列表中的一个或另一个,请使用 random.choice
:
for i in range(20):
reply = ['hi',scramble('me too thanks')]
print(random.choice(reply))
Ajax1234 解决方案有效,但在 50% 的情况下会丢弃 scramble
的结果。它还创建了一个不必要的列表供选择。那是对 CPU 能力的浪费。
就这样:
for _ in range(20):
print('hi' if random.randint(0,1) else scramble('me too thanks'))
打印一个或另一个字符串是一个三元表达式。很酷的是,如果 random.randint(0,1)
returns 1
,scramble
根本不会执行
如果你有更多的案例,你可以随机选择一个函数,这样你就只执行你需要的那个,例如使用lambda
:
for _ in range(20):
reply = [lambda : 'hi',lambda:scramble('me too thanks'),lambda:'hello']
print(random.choice(reply)()) # note the calling of the chosen function with ()
试试这个:
from numpy as np
def scramble(sentence):
split = sentence.split()
np.random.shuffle(split)
return ' '.join(split)
for i in range(20):
reply = ['hi',scramble('me too thanks')]
print(np.random.choice(reply))