輸入
由空格分隔的一行數(shù)據(jù),輸入到列表中
list = input().split(" ")
input()函數(shù)輸入值的類型默認(rèn)是字符串,split()函數(shù)表示分隔數(shù)據(jù)串的依據(jù),括號(hào)里面就是按什么分隔,比如按逗號(hào)分割的話就是將雙引號(hào)中的空格改成逗號(hào),示例如下
list = [int(ls) for ls in list]
或者
list = [int(list[i]) for i in range(len(list))]
中間是for循環(huán)的簡(jiǎn)化用法,這樣較為簡(jiǎn)單的將列表里面的數(shù)據(jù)類型進(jìn)行了轉(zhuǎn)換,如下
如果是并不想將數(shù)據(jù)輸入到列表中,而是直接輸入到變量中
一個(gè)數(shù)據(jù)直接以整數(shù)形式輸入到變量中
a = int(input())
兩個(gè)以空格分隔的數(shù)據(jù)直接輸入到變量中
a,b = map(int, input().split())
map()函數(shù)語(yǔ)法如下
map() 會(huì)根據(jù)提供的函數(shù)對(duì)指定序列做映射。 map(function, iterable, …) function – 函數(shù) iterable – 一個(gè)或多個(gè)序列 個(gè)參數(shù) function,以參數(shù)序列中的每一個(gè)元素調(diào)用function函數(shù),返回包含每次function函數(shù)返回值的新列表。
此函數(shù)返回的是一個(gè)迭代器,在此,初學(xué)者并不需要具體知道這是什么。
如果對(duì)上述函數(shù)的介紹并不是很明白的話,簡(jiǎn)單來(lái)說(shuō),就是將序列里面的數(shù)據(jù)一個(gè)個(gè)傳入到函數(shù)中,函數(shù)傳回的每個(gè)結(jié)果我們可以用變量接收。也就是我們傳入的字符串被按空格分隔成序列后,序列里的每個(gè)值經(jīng)int()函數(shù)轉(zhuǎn)換后輸出到變量a,b中
至于這次的split()函數(shù)中并沒(méi)有寫參數(shù)的原因是,split()函數(shù)里參數(shù)的默認(rèn)值就是空格,所以,當(dāng)split()函數(shù)中的參數(shù)是空格時(shí),不用填入可以直接使用
所以,上面說(shuō)到的list列表里面的輸入和轉(zhuǎn)換,可以直接簡(jiǎn)化為
list = map(int, input().split(' '))
輸出
輸出列表中數(shù)據(jù)時(shí),很多時(shí)候我們并不想要輸出括號(hào)和引號(hào),這個(gè)只需要在輸出時(shí)稍稍改動(dòng)一下就行了
print(' '.join(list))
單引號(hào)中的符號(hào)表示這些數(shù)據(jù)以什么分隔,如下
print(i,end = ' ')
print中的end參數(shù)控制輸入的數(shù)據(jù)用什么間隔,默認(rèn)值是’n’,將其的值改成別的符號(hào),就能控制輸出數(shù)據(jù)的分隔符號(hào)
list.append()在使用前,如果list列表在之前未賦值,則需要在之前用list = []賦值一下,不然會(huì)報(bào)錯(cuò):descriptor ‘a(chǎn)ppend’ of ‘list’ object needs an argument
一重列表的初始化有很多方法,比如直接賦值,通過(guò)range()函數(shù)等,雙重列表的初始化:list = [[0 for i in range(5)]for i in range(6)],這就是定義了一個(gè)五列六行的列表,并初始化為0