溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么在python中實現(xiàn)一個二維列表

發(fā)布時間:2021-04-30 17:01:44 來源:億速云 閱讀:312 作者:Leah 欄目:開發(fā)技術(shù)

怎么在python中實現(xiàn)一個二維列表?相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

Python主要用來做什么

Python主要應(yīng)用于:1、Web開發(fā);2、數(shù)據(jù)科學(xué)研究;3、網(wǎng)絡(luò)爬蟲;4、嵌入式應(yīng)用開發(fā);5、游戲開發(fā);6、桌面應(yīng)用開發(fā)。

1. 使用輸入值初始化列表

nums = []
rows = eval(input("請輸入行數(shù):"))
columns = eval(input("請輸入列數(shù):"))
for row in range(rows):
  nums.append([])
  for column in range(columns):
    num = eval(input("請輸入數(shù)字:"))
    nums[row].append(num)
print(nums)

輸出結(jié)果為:

請輸入行數(shù):3
請輸入列數(shù):3
請輸入數(shù)字:1
請輸入數(shù)字:2
請輸入數(shù)字:3
請輸入數(shù)字:4
請輸入數(shù)字:5
請輸入數(shù)字:6
請輸入數(shù)字:7
請輸入數(shù)字:8
請輸入數(shù)字:9
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]

2. 使用隨機數(shù)初始化列表

import random
numsList = []
nums = random.randint(0, 9)
rows = random.randint(3, 6)
columns = random.randint(3, 6)
for row in range(rows):
  numsList.append([])
  for column in range(columns):
    num = random.randint(0, 9)
    numsList[row].append(num)
print(numsList)

輸出結(jié)果為:

[[0, 0, 4, 0, 7], [4, 2, 9, 6, 4], [7, 9, 8, 1, 7], [1, 7, 7, 5, 7]]

3. 對所有的元素求和

nums = [[1, 2, 3], [4, 5, 6], [7, 8, 9], [3, 4, 7]]
total = 0
for i in nums:
  for j in i:
    total += j
print(total)

輸出結(jié)果為:

total =  59

4. 按列求和

nums = [[1, 2, 3], [4, 5, 6], [7, 8, 9], [3, 4, 7]]
total = 0
for column in range(len(nums[0])):
  # print("column = ",column)
  for i in range(len(nums)):
    total += nums[i][column]
  print(total)

輸出結(jié)果為:

15
34
59

5. 找出和 最大的行

nums = [[1, 2, 3], [4, 5, 6], [7, 8, 9], [3, 4, 7]]
maxRow = sum(nums[0])
indexOfMaxRow = 0
for row in range(1, len(nums)):
  if sum(nums[row]) > maxRow:
    maxRow = sum(nums[row])
    indexOfMaxRow = row
print("索引:",indexOfMaxRow)
print("最大的行:",maxRow)

輸出結(jié)果為:

索引: 2
最大的行: 24

6. 打亂二維列表的所有元素

import random
nums = [[1, 2, 3], [4, 5, 6], [7, 8, 9], [3, 4, 7]]
for row in range(len(nums)):
  for column in range(len(nums[row])):
    i = random.randint(0, len(nums) - 1)
    j = random.randint(0, len(nums[row]) - 1)
    nums[row][column], nums[i][j] = nums[i][j], nums[row][column]
print(nums)

輸出結(jié)果為:

[[3, 3, 5], [7, 6, 7], [4, 2, 4], [9, 8, 1]]

7. 排序

'''
sort方法,通過每一行的第一個元素進行排序。對于第一個元素相同的行,則通過它們的第二個元素進行排序。如果行中的第一個和第二個元素都相同,那么利用他們的第三個元素進行排序,依此類推

'''

points = [[4, 2], [1, 7], [4, 5], [1, 2], [1, 1], [4, 1]]
points.sort()
print(points)

輸出結(jié)果為:

[[1, 1], [1, 2], [1, 7], [4, 1], [4, 2], [4, 5]]

補充:下面給大家介紹下python 二維列表按列取元素。

直接切片是不行的:

>>> a=[[1,2,3], [4,5,6]]
>>> a[:, 0]          # 嘗試用數(shù)組的方法讀取一列失敗
TypeError: list indices must be integers or slices, not tuple

我們可以直接構(gòu)造:

>>> b = [i[0] for i in a]   # 從a中的每一行取第一個元素。
>>> print(b)
[1, 4]

看完上述內(nèi)容,你們掌握怎么在python中實現(xiàn)一個二維列表的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI