当前位置:首页 » 编程语言 » python数组运算

python数组运算

发布时间: 2023-05-16 20:06:22

1. python怎么用数组来降低时间复杂度

1. 使用数组代替循环

在一些需要遍历多次的操作中,使用数组可以代替循环,从而降低时间复杂度。例如,在计算一个数组中所有元素的和时,可以使用如下代码:

sum = 0
for i in range(len(arr)):
sum += arr[i]

可以使用sum函数来代替循环:

sum = sum(arr)

2. 使用数组代替递归

在一些递归操作中,使用数组可以代替递归,从而降低时间复杂度。例如,在计算斐波那契数列的第n项时,可以使用如下代码:

def fib(n):
if n <= 1:
return n
else:
return fib(n-1) + fib(n-2)

可以使用数组来代替递归:

def fib(n):
if n <= 1:
return n
arr = [0, 1]
for i in range(2, n+1):
arr.append(arr[i-1] + arr[i-2])
return arr[n]

3. 使用数拆携樱组代替字典

在一些需要查找操作的场景中,使用数组可以代替字典,从而降低时间复杂度。例如,在查找一个字符串中出现次数最多的字符时,可以使用如下代码:

s = 'abcccddddd'
count = {}
for c in s:
if c in count:
count[c] += 1
else:
count[c] = 1
max_char = max(count, key=count.get)

可以使用数组来代替字典:

s = 'abcccddddd'
count = [0] * 26
for c in s:
count[ord(c) - ord('a')] += 1
max_char = chr(ord('a') + count.index(max(count)))

4. 使用数组代替集合

在一些需要判断元素是否存在的场景中隐孙,使用数组可以代替集合,从而降低时间复杂度。例如,在判断一个数组中是否存在重复元素时,可以使用如下代码:

arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1]
if len(set(arr)) == len(arr):
print('No plicates')
else:
print('Duplicates exist')

可以使用数组来旅丛代替集合:

arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1]
count = [0] * 10
for x in arr:
if count[x-1] == 1:
print('Duplicates exist')
break
else:
count[x-1] = 1
else:
print('No plicates')

2. Python中数组的基本操作

先定义一个数组列表:

列表合并也可以用+,但是用+的话,会产生一个新的列表(当然也可以赋值给任何的变量),而extend则只是修改了原来的对象

只读数组,只能查看不能编辑,列表的切片操作同样适于元组。

表达方式:tuple=("元素1","元素2","元素3"),中间同样用,隔开

特殊的元组:tupleZero=()空元组

                        tupleOne=("元素1",)  只有一个元素,后面要跟一个,(注意好的习惯的养成)

作用:1.对于一些不想被修改的元素,可以放在元组里面

        2.元组可以在映射(和集合的成员)中当作键使用,而列表不行

        3.元组作为内建函数和方法的返回值

enumerate(列表对象,返回标签起始值(默认为零))

上面的例子可以看出,返回的i是一个元组,如果不想要元组的话,可以用两个参数接收:

3. Python里怎么把数组里的数字用于计算和比较

for i in list: #list--你的array
if i > a: #a--用来比较的数值
print "数组数值大于比较数值"
else:
print "数组数值小于等于比较数值"

4. Python二维数组运算

二维数组示例:
a=[[1,2,3],[4,5,6],[7,8,9]]
print a
print a[0]
print a[1]
print a[2]
print a[0][0],a[0][1],a[0][2]
sum=0
for i in range(0,3):
for j in range(0,3):
sum=sum+a[i][j]
print sum

5. 对Python中数组的几种使用方法总结

对Python中数组的几种使用方法总结
今天小编就为大家分享一篇对Python中数组的几种使用方法总结,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
二维数组的初始化
matirx_done = [[0 for i in range(0, len(matirx))]for j in range(0, len(matirx[0]))]
就将其初始化为一个与matrix相同大小的元素全为 0 的矩阵
数组的多级排序
在数组 idea_collect = [[3, 1, 2], [3, 2, 1], [3, 2, 2], [3, 1, 1]] 中, 先按照第二项排列, 再按照第三项倒序排列 可写为:
idea_collect.sort(key=lambda x: (x[1], -x[2]))
其中, x[1] 代表第二项正序排列, -x[2] 代表第三项倒序排列
排列结果为 [[3, 1, 2], [3, 1, 1], [3, 2, 2], [3, 2, 1]]
在一个 class 中多个函数不传参使用同一个数组
如例所示:
class Partition:
def __init__(self):
self.num_complete = []

def partition(self, num, start, end):
self.num_compelete = num

def partition_core(self):
del self.num_compelete[0]
其中,self.num_compelete就是 class 中两个函数同时可以直接调用的数组, 不过最好先在def __init__中声明这个数组
以上这篇对Python中数组的几种使用方法总结就是小编分享给大家的全部内容了

6. python如何计算数组内存

数组定义为存储在连续内存位置的项目的集合。这是一个可以容纳固定数量项目的容器, 这些项目应为同一类型。数组在大多数编程语言(例如C / C ++, JavaScript等)中都很流行。

数组是将多个相同类型的项存储在一起的想法, 并且只需在基本值上添加一个偏移量, 就可以更轻松地计算每个元素的位置。数组的组合可以通过减少代码的整体大小来节省大量时间。它用于在单个变量中存储多个值。如果你有一个存储在其相应变量中的项目列表, 如下所示:

car1 =”兰博基尼”

car2 =”布加迪”

car3 =” Koenigsegg”

如果要遍历汽车并找到特定的汽车, 可以使用该数组。

数组可以在Python中由名为array的模块处理。当我们只需要操作特定的数据值时, 这很有用。以下是了解数组概念的术语:

元素-存储在数组中的每个项目称为元素。

索引-数组中元素的位置具有数字索引, 该数字索引用于标识元素的位置。

数组表示

数组可以用各种方式和不同的语言声明。应考虑的重点如下:

索引从0开始。

我们可以通过其索引访问每个元素。

数组的长度定义了存储元素的能力。

数组运算

数组支持的一些基本操作如下:

遍历-逐一打印所有元素。

插入-在给定的索引处添加一个元素。

删除-删除给定索引处的元素。

搜索-它使用给定的索引或值搜索元素。

更新-更新给定索引处的元素。

7. 怎样用python将数组里的数从高到低排序

1、首先我们定义一个列表输入一串大小不一的数字。

8. python怎么操作多维数组元素

在Python中,一个像这样的多维表格可以通过“序列的序列”实现。一个表格是行的序列。每一行又是独立单元格的序列。这类似于我们使用的数学记号,在数学里我们用Ai,j,而在Python里我们使用A[i][j],代表矩阵的第i行第j列。

这看起来非常像“元组的列表”(Lists of Tuples)。

“列表的列表”示例

我们可以使用嵌套的列表推导式(list comprehension)创建一个表格。 下面的例子创建了一个“序列的序列”构成的表格,并为表格的每一个单元格赋值。
table= [ [ 0 for i in range(6) ] for j in range(6) ]
print table
for d1 in range(6):
for d2 in range(6):
table[d1][d2]= d1+d2+2
print table
123456

程序的输出结果如下:
[[0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0]]
[[2, 3, 4, 5, 6, 7], [3, 4, 5, 6, 7, 8], [4, 5, 6, 7, 8, 9],
[5, 6, 7, 8, 9, 10], [6, 7, 8, 9, 10, 11], [7, 8, 9, 10, 11, 12]]
1234

这个程序做了两件事:创建了一个6 × 6的全0表格。 然后使用两枚骰子的可能组合的数值填充表格。 这并非完成此功能最有效的方式,但我们通过这个简单的例子来演示几项技术。我们仔细看一下程序的前后两部分。

程序的第一部分创建并输出了一个包含6个元素的列表,我们称之为“表格”;表格中的每一个元素都是一个包含6个0元素的列表。它使用列表推导式,对
于范围从0到6的每一个j都创建对象。每一个对象都是一个0元素列表,由i变量从0到6遍历产生。初始化完成之后,打印输出二维全0表格。

推导式可以从里向外阅读,就像一个普通表达式一样。内层列表[ 0 for i in range(6) ]创建了一个包含6个0的简单列表。外层列表[ [...] for j in range(6) ]创建了这些内层列表的6个深拷贝。

程序的第2个部分对2个骰子的每一个组合进行迭代,填充表格的每一个单元格。这由两层嵌套循环实现,每一个循环迭代一个骰子。外层循环枚举第一个骰子的所有可能值d1。内层循环枚举第二个骰子d2。

更新每一个单元格时需要通过table[d1]选择每一行;这是一个包含6个值的列表。这个列表中选定的单元格通过...[d2]进行选择。我们将掷骰子的值赋给这个单元格,d1+d2+2

其他示例

打印出的列表的列表不太容易阅读。下面的循环会以一种更加可读的形式显示表格。
>>>
for row in table:

...
print row

...
[2, 3, 4, 5, 6, 7]
[3, 4, 5, 6, 7, 8]
[4, 5, 6, 7, 8, 9]
[5, 6, 7, 8, 9, 10]
[6, 7, 8, 9, 10, 11]
[7, 8, 9, 10, 11, 12]
12345678910111213

作为练习,读者可以试着在打印列表内容时,再打印出行和列的表头。提示一下,使用"%2d" % value字符串运算符可以打印出固定长度的数字格式。

显示索引值(Explicit Index Values)

我们接下来对骰子表格进行汇总统计,得出累计频率表。我们使用一个包含13个元素的列表(下标从0到12)表示每一个骰子值的出现频率。观察可知骰子值2在矩阵中只出现了一次,因此我们期望fq[2]的值为1。遍历矩阵中的每一个单元格,得出累计频率表。
fq= 13 * [0]
for i in range(6):
for j in range(6):
c= table[i][j]
fq[ c ] += 1
12345

使用下标i选出表格中的行,用下标j从行中选出一列,得到单元格c。然后用fq统计频率。

这看起来非常的数学和规范。Python提供了另外一种更简单一些的方式。

使用列表迭代器而非下标

表格是列表的列表,可以采用无下标的for循环遍历列表元素。
fq= 13 * [0]
print fq
for row in table:
for c in row:
fq[c] += 1
print fq[2:]

热点内容
腾讯云服务器公跟内什么意思 发布:2025-07-16 21:12:19 浏览:368
王者荣耀ios系统如何转到安卓系统 发布:2025-07-16 20:52:37 浏览:694
青少年趣味编程社区 发布:2025-07-16 20:35:26 浏览:97
小黄车怎么更改密码 发布:2025-07-16 20:34:43 浏览:190
为什么国产车气囊少配置高 发布:2025-07-16 20:18:46 浏览:462
pci加密解密控制器驱动 发布:2025-07-16 20:16:18 浏览:176
锐龙本编程 发布:2025-07-16 19:35:08 浏览:646
初学c语言用什么软件 发布:2025-07-16 19:29:12 浏览:339
编译原理实验分析子程序 发布:2025-07-16 19:28:06 浏览:463
长江存储宿舍有wifi吗 发布:2025-07-16 19:20:45 浏览:872