日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

list 根据某个数字所在位置_富玩车穷玩表,一个案例轻松认识python列表List——计算Hadamard 乘积...

發(fā)布時(shí)間:2024/9/15 python 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 list 根据某个数字所在位置_富玩车穷玩表,一个案例轻松认识python列表List——计算Hadamard 乘积... 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

計(jì)算兩個(gè)矩陣的 Hadamard 乘積, 矩陣的 Hadamard 積就是兩個(gè)同維矩陣的逐元素對(duì)應(yīng)相乘,cij=aij×bij。要求輸入矩陣的行/列數(shù)(在這里假設(shè)我們使用的是 n × n 的矩陣)

Python 有許多內(nèi)建的數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)結(jié)構(gòu)(data structure)是計(jì)算機(jī)中存儲(chǔ)、組織數(shù)據(jù)的方式。

1、列表

序列是 Python 中最基本的數(shù)據(jù)結(jié)構(gòu)。

序列中的每個(gè)值都有對(duì)應(yīng)的位置值,稱(chēng)之為索引,第一個(gè)索引是 0,第二個(gè)索引是 1,依此類(lèi)推。

Python 有 6 個(gè)序列的內(nèi)置類(lèi)型,但最常見(jiàn)的是列表和元組。

列表都可以進(jìn)行的操作包括索引,切片,加,乘,檢查成員。

此外,Python 已經(jīng)內(nèi)置確定序列的長(zhǎng)度以及確定最大和最小的元素的方法。

列表是最常用的 Python 數(shù)據(jù)類(lèi)型,它可以作為一個(gè)方括號(hào)內(nèi)的逗號(hào)分隔值出現(xiàn)。

列表的數(shù)據(jù)項(xiàng)不需要具有相同的類(lèi)型

創(chuàng)建一個(gè)列表,只要把逗號(hào)分隔的不同的數(shù)據(jù)項(xiàng)使用方括號(hào)括起來(lái)即可。

list1 = ['Google', 'Runoob', 1997, 2000]
list2 = [1, 2, 3, 4, 5 ]

2、訪問(wèn)列表中的值

與字符串的索引一樣,列表索引從 0 開(kāi)始,第二個(gè)索引是 1,依此類(lèi)推。

通過(guò)索引列表可以進(jìn)行截取、組合等操作。

索引也可以從尾部開(kāi)始,最后一個(gè)元素的索引為 -1,往前一位為 -2,以此類(lèi)推。

使用下標(biāo)索引來(lái)訪問(wèn)列表中的值,同樣你也可以使用方括號(hào) [] 的形式截取字符;列表截取可以接收第三個(gè)參數(shù),參數(shù)作用是截取的步長(zhǎng)。

3、更新列表

append() 方法來(lái)添加列表項(xiàng)

4、刪除列表元素

del 語(yǔ)句來(lái)刪除列表的的元素

5、列表操作符

表達(dá)式描述
len( )長(zhǎng)度
+組合
*重復(fù)
In元素是否存在于列表中

6、嵌套列表

使用嵌套列表即在列表里創(chuàng)建其它列表

7、列表函數(shù)

序號(hào)函數(shù)描述
1len(list)列表元素個(gè)數(shù)
2max(list)返回列表元素最大值
3min(list)返回列表元素最小值
4list(seq)將元組轉(zhuǎn)換為列表

8、列表方法

序號(hào)方法描述
1list.append(obj)在列表末尾添加新的對(duì)象
2list.count(obj)統(tǒng)計(jì)某個(gè)元素在列表中出現(xiàn)的次數(shù)
3list.extend(seq)在列表末尾一次性追加另一個(gè)序列中的多個(gè)值(用新列表擴(kuò)展原來(lái)的列表)
4list.index(obj)從列表中找出某個(gè)值第一個(gè)匹配項(xiàng)的索引位置
5list.insert(index, obj)對(duì)象插入列表
6list.pop([index=-1])移除列表中的一個(gè)元素(默認(rèn)最后一個(gè)元素),并且返回該元素的值
7list.remove(obj)移除列表中某個(gè)值的第一個(gè)匹配項(xiàng)
8list.reverse()反向列表中元素
9list.sort( key=None, reverse=False)對(duì)原列表進(jìn)行排序
10list.clear()清空列表
11list.copy()復(fù)制列表

9、將列表當(dāng)做堆棧使用

列表方法使得列表可以很方便的作為一個(gè)堆棧來(lái)使用,堆棧作為特定的數(shù)據(jù)結(jié)構(gòu),最先進(jìn)入的元素最后一個(gè)被釋放(后進(jìn)先出)。

用 append() 方法可以把一個(gè)元素添加到堆棧頂。用不指定索引的 pop() 方法可以把一個(gè)元素從堆棧頂釋放出來(lái)。

>>>?stack?=?[3,?4,?5]
>>>?stack.append(6)
>>>?stack
[3,?4,?5,?6]
>>>?stack.pop()
6
>>>?stack
[3,?4,?5]

10、將列表當(dāng)作隊(duì)列使用

也可以把列表當(dāng)做隊(duì)列用,只是在隊(duì)列里第一加入的元素,第一個(gè)取出來(lái);但是拿列表用作這樣的目的效率不高。在列表的最后添加或者彈出元素速度快,然而在列表里插入或者從頭部彈出速度卻不快(因?yàn)樗衅渌脑囟嫉靡粋€(gè)一個(gè)地移動(dòng))。

>>>?from?collections?import?deque
>>>?queue?=?deque(["Eric",?"John",?"Michael"])
>>>?queue.append("Terry")?????????????????
>>>?queue.popleft()????????????????
'Eric'

11、列表推導(dǎo)式

列表推導(dǎo)式提供了從序列創(chuàng)建列表的簡(jiǎn)單途徑。通常應(yīng)用程序?qū)⒁恍┎僮鲬?yīng)用于某個(gè)序列的每個(gè)元素,用其獲得的結(jié)果作為生成新列表的元素,或者根據(jù)確定的判定條件創(chuàng)建子序列。

每個(gè)列表推導(dǎo)式都在 for 之后跟一個(gè)表達(dá)式,然后有零到多個(gè) for 或 if 子句。返回結(jié)果是一個(gè)根據(jù)表達(dá)從其后的 for 和 if 上下文環(huán)境中生成出來(lái)的列表。如果希望表達(dá)式推導(dǎo)出一個(gè)元組,就必須使用括號(hào)。

#將列表中每個(gè)數(shù)值乘三,獲得一個(gè)新的列表:
>>>?vec?=?[2,?4,?6]
>>>?[3*x?for?x?in?vec]
[6,?12,?18]

>>>?[[x,?x**2]?for?x?in?vec]
[[2,?4],?[4,?16],?[6,?36]]

>>>?freshfruit?=?['??banana',?'??loganberry?',?'passion?fruit??']
>>>?[weapon.strip()?for?weapon?in?freshfruit]
['banana',?'loganberry',?'passion?fruit']

用 if 子句作為過(guò)濾器:

>>>?[3*x?for?x?in?vec?if?x?>?3]
[12,?18]
>>>?[3*x?for?x?in?vec?if?x?2]
[]

以下是一些關(guān)于循環(huán)和其它技巧的演示:

>>>?vec1?=?[2,?4,?6]
>>>?vec2?=?[4,?3,?-9]
>>>?[x*y?for?x?in?vec1?for?y?in?vec2]
[8,?6,?-18,?16,?12,?-36,?24,?18,?-54]
>>>?[x+y?for?x?in?vec1?for?y?in?vec2]
[6,?5,?-7,?8,?7,?-5,?10,?9,?-3]
>>>?[vec1[i]*vec2[i]?for?i?in?range(len(vec1))]
[8,?12,?-54]

列表推導(dǎo)式可以使用復(fù)雜表達(dá)式或嵌套函數(shù):

>>>?[str(round(355/113,?i))?for?i?in?range(1,?6)]
['3.1',?'3.14',?'3.142',?'3.1416',?'3.14159']

12、嵌套列表解析

Python的列表還可以嵌套。

3X4的矩陣列表:

>>>?matrix?=?[
...?????[1,?2,?3,?4],
...?????[5,?6,?7,?8],
...?????[9,?10,?11,?12],
...?]

將3X4的矩陣列表轉(zhuǎn)換為4X3列表:

>>>?[[row[i]?for?row?in?matrix]?for?i?in?range(4)]
[[1,?5,?9],?[2,?6,?10],?[3,?7,?11],?[4,?8,?12]]

也可以使用以下方法來(lái)實(shí)現(xiàn):

>>>?transposed?=?[]
>>>?for?i?in?range(4):
...?????transposed.append([row[i]?for?row?in?matrix])
...
>>>?transposed
[[1,?5,?9],?[2,?6,?10],?[3,?7,?11],?[4,?8,?12]]

另外一種實(shí)現(xiàn)方法:

>>>?transposed?=?[]
>>>?for?i?in?range(4):
...?????transposed_row?=?[]
...?????for?row?in?matrix:
...?????????transposed_row.append(row[i])
...?????transposed.append(transposed_row)
...
>>>?transposed
[[1,?5,?9],?[2,?6,?10],?[3,?7,?11],?[4,?8,?12]]

13、del 語(yǔ)句

使用 del 語(yǔ)句可以從一個(gè)列表中依索引而不是值來(lái)刪除一個(gè)元素。這與使用 pop() 返回一個(gè)值不同。可以用 del 語(yǔ)句從列表中刪除一個(gè)切割,或清空整個(gè)列表(我們以前介紹的方法是給該切割賦一個(gè)空列表)。

>>>?a?=?[-1,?1,?66.25,?333,?333,?1234.5]
>>>?del?a[0]
>>>?a
[1,?66.25,?333,?333,?1234.5]
>>>?del?a[2:4]
>>>?a
[1,?66.25,?1234.5]
>>>?del?a[:]
>>>?a
[]

也可以用 del 刪除實(shí)體變量:

>>>?del?a

14、編程實(shí)現(xiàn)

計(jì)算兩個(gè)矩陣的 Hadamard 乘積, 矩陣的 Hadamard 積就是兩個(gè)同維矩陣的逐元素對(duì)應(yīng)相乘,cij=aij×bij。要求輸入矩陣的行/列數(shù)(在這里假設(shè)我們使用的是 n × n 的矩陣)

n?=?int(input("輸入數(shù)字n:?"))
print("輸入矩陣A")
a?=?[]
for?i?in?range(n):????
a.append([int(x)?for?x?in?input().split()])

print("輸入矩陣B")
b?=?[]
for?i?in?range(n):
b.append([int(x)?for?x?in?input().split()])

#計(jì)算Hadamard矩陣
c?=?[]
for?i?in?range(n):
c.append([a[i][j]?*?b[i][j]?for?j?in?range(n)])

print("生成的Hadamard矩陣")
print("-"?*?7?*?n)???#分隔符-----

for?x?in?c:
????for?y?in?x:
????????print(str(y).rjust(5),?end='?')
????print()
print("-"?*?7?*?n)????#分隔符-----

使用了幾次列表推導(dǎo)式。

[int(x) for x in input().split()] 首先通過(guò) input() 獲得用戶(hù)輸入的字符串,再使用 split() 分割字符串得到一系列的數(shù)字字符串,然后用 int() 從每個(gè)數(shù)字字符串創(chuàng)建對(duì)應(yīng)的整數(shù)值。

[a[i][j] * b[i][j] for j in range(n)] 來(lái)得到矩陣乘積的每一行數(shù)據(jù)。

15、rjust()

返回一個(gè)原字符串右對(duì)齊,并使用空格填充至長(zhǎng)度 width 的新字符串。如果指定的長(zhǎng)度小于字符串的長(zhǎng)度則返回原字符串。

str.rjust(width[, fillchar])
參數(shù)
width -- 指定填充指定字符后中字符串的總長(zhǎng)度.
fillchar -- 填充的字符,默認(rèn)為空格。

溫馨提示:* 本號(hào)內(nèi)容為教育學(xué)習(xí)使用,軟件、知識(shí)更新等,請(qǐng)以實(shí)際為準(zhǔn);* 本文部分圖片均來(lái)源于網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系刪除。

總結(jié)

以上是生活随笔為你收集整理的list 根据某个数字所在位置_富玩车穷玩表,一个案例轻松认识python列表List——计算Hadamard 乘积...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。