私は英語を使ってそれを説明する方法を本当に知りませんが、
inputText = "John Smith 5"
それを分割して nameArray に挿入し、5(string) を整数にします。
nameArray = ["John", "Doe", 5]
そして、 nameArray を fullNameArray に配置します
fullNameArray = [["John", "Doe", 5], ["John", "Smith", 5]]
int()
ここで例外処理を使用します。
>>> def func(x):
... try:
... return int(x)
... except ValueError:
... return x
...
>>> inputText = "John Smith 5"
>>> spl = [func(x) for x in inputText.split()]
>>> spl
['John', 'Smith', 5]
常に変換する必要がある最後の要素であると確信している場合は、これを試してください。
>>> inputText = "John Smith 5"
>>> spl = inputText.split()
>>> spl[-1] = int(spl[-1])
>>> spl
['John', 'Smith', 5]
を使用nameArray.append
して、新しいリストをそれに追加します。
>>> nameArray = [] #initialize nameArray as an empty list
>>> nameArray.append(["John", "Doe", 5]) #append the first name
>>> spl = [func(x) for x in inputText.split()]
>>> nameArray.append(spl) #append second entry
>>> nameArray
[['John', 'Doe', 5], ['John', 'Smith', 5]]
あなたは探しているnameArray = inputText.split()
次のコードは、文字列内の任意の数値に対して機能します
入力がinputTextListと呼ばれるリストにあると仮定します:
fullNameArray = []
for inputText in inputTextList:
nameArray = inputText.split()
nameArray = [int(x) if x.isdigit() else x for x in nameArray]
fullNameArray.append(nameArray)
>>> fullnameArray = [["John", "Doe", 5]]
>>> inputText = "John Smith 5"
>>> fullnameArray.append([int(i) if i.isdigit() else i for i in inputText.split()])
>>> fullnameArray
[['John', 'Doe', 5], ['John', 'Smith', 5]]
リスト内包表記内の条件式 (「三項演算子」)を含む3 行目(その構文に慣れていない場合に備えて) は、次のように書くこともできます。
nameArray = []
for i in inputText.split():
if i.isdigit():
nameArray.append(int(i))
else:
nameArray.append(i)
fullnameArray.append(sublist)