Python字长

时间:2016-09-02 02:49:15

标签: python python-3.x

有没有办法可以只设置一些变量。

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留空?

4 个答案:

答案 0 :(得分:1)

您无需执行任何操作。如果要使用空格填充未使用的字符,可以使用str.ljust或字符串格式。

>>> 'word'.ljust(9)
'word     '
>>> '{:<9}'.format('word')
'word     '

答案 1 :(得分:1)

我真的不明白你要做什么,但如果你想根据后缀为l1l2 ... 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 - 变量。