有没有办法可以只设置一些变量。
l1, l2, l3, l4, l5, l6, l7, l8, l9, = (' ',)*9
word = input("Choose up to a 9 letter word: ")
wordlist = list(word)
wordl = len(word)
l1, l2, l3, l4, l5, l6, l7, l8, l9, = (wordlist)
更具体地说,如果某人输入一个6个字母的单词,它只会设置l6并将l7-l9留空?
答案 0 :(得分:1)
您无需执行任何操作。如果要使用空格填充未使用的字符,可以使用str.ljust
或字符串格式。
>>> 'word'.ljust(9)
'word '
>>> '{:<9}'.format('word')
'word '
答案 1 :(得分:1)
我真的不明白你要做什么,但如果你想根据后缀为l1
,l2
... l9
分配值(数字)其中后缀对应于长度字,那么这里是代码:
>>> l1, l2, l3, l4, l5, l6, l7, l8, l9, = (' ',)*9
... word = input("Choose up to a 9 letter word: ")
... locals().update({'l'+str(len(w)): w for w in word.split() if len(w)<10})
... l1, l2, l3, l4, l5, l6, l7, l8, l9,
Choose up to a 9 letter word: idoKtknow waht you trying ti do ?
10: ('?', 'do', 'you', 'waht', ' ', 'trying', ' ', ' ', 'idoKtknow')
答案 2 :(得分:1)
你真的应该使用一个列表。如果l
是一个列表(因此您拥有l[0], l[1], ..., l[9] = ...
),这可以满足您的需求:
for (index, letter) in enumerate(word):
l[index] = letter
(我假设你有一些理由希望将以后的变量保留为未分配。如果你只想让它们为空,则更简单的字符串填充方法更好)
答案 3 :(得分:0)
您可以使用类似None
的内容填充输入迭代,然后将填充的可迭代切片到预期长度。
l1, l2, l3, l4, l5, l6, l7, l8, l9 = (list(word) + [None]*8)[:9]
无论word
多短,组合词/ None
列表至少包含9个字符;切片修剪额外内容。
但是,更常见的是,每个字母不需要单独的变量;只需存储列表l = list(word)
并使用l[i]
代替每个l
- 变量。