2016-09-02 4 views
0

일부 변수 만 설정할 수있는 방법이 있습니까?파이썬 단어 길이

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 자 단어를 입력하면 16을 설정하고 17-19를 공백으로 남기는 방식이 더 구체적입니까?

+1

무엇을하려고합니까? 단어를 문자로 나눕니다? – Headcrab

답변

1

정말 목록을 사용해야합니다. l 경우 (그래서 당신은 l[0], l[1], ..., l[9] = ...이) 목록을했다, 이것은 당신이 원하는 것을 수행합니다.

for (index, letter) in enumerate(word): 
    l[index] = letter 

(나는 당신이 변수 할당 나중에 떠나고 싶어 몇 가지 이유가 가정 그냥 원하는 경우 그 빈 단순한 문자열 패딩 방법이 더 좋습니다)

0

입력 반복 가능을 None과 같은 것으로 채우고 패딩 된 반복 가능을 예상 길이로 슬라이스 할 수 있습니다. 아무리 word이 얼마나 짧은

l1, l2, l3, l4, l5, l6, l7, l8, l9 = (list(word) + [None]*8)[:9] 

, 결합 된 단어/None 목록은 적어도 9 개 문자가; 슬라이스가 추가 기능을 다듬습니다.

그러나 각 문자에 별도의 변수가 필요하지는 않습니다. l = list(word) 목록을 저장하고 각 개인 대신에 l[i]을 사용하십시오. l -variable.

1

아무 것도 할 필요가 없습니다. 사용하지 않는 문자를 공백으로 채우려면 str.ljust 또는 문자열 서식을 사용할 수 있습니다.

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

난 정말 당신이 뭘 하려는지 이해가 안 돼요,하지만 당신은 접미사 (수)에 따라 ... l1, l2l9을 값을 할당 할 경우 접미사가 길이 단어에 해당하는 경우 코드는 다음과 같습니다.

>>> 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') 
+0

어떻게 작동합니까? 당신은 단지 목록을 나눌 수 없습니까? 그리고 각 문자는 1 var마다 증가하고 길이를 출력합니까? – thesonyman101

+0

내가 이해 한 것을 바탕으로 OP는 단어 길이로 접미사가 붙은 변수에 단어를 할당하려고합니다. 그리고 위는 똑같이 작동합니다! – wolframalpha

+0

오, 롤 아주 좋은 이름을 권자 – thesonyman101