python数组-1成员_python[1,2,3]*3

python数组-1成员_python[1,2,3]*3使用python版本3.7首先先了解下python3.7中的下标,python下标有两套,一套是正的,一套是负的a=’python’中的python的下标可以如下组python正下标012345负下标-6-5-4-3-2-1对应位置的正下标-负下标=len(a)使用正下标时,下标i………………………

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

使用python版本3.7
首先先了解下python3.7中的下标,python下标有两套,一套是正的,一套是负的
引入负坐标的意义应该是方便将数组中的数据从右往左访问。
a='python'中的python 的下标描述如下
组     p   y   t   h   o   n
正下标 0   1   2   3   4   5
负下标 -6 -5   -4  -3  -2  -1
对应位置的正下标减去负下标等于len(a) :正下标-负下标=len(a)
使用正下标时,下标i取值范围为0 <= i < len(a)     超出范围为越界,i大于len(a)表示越(数轴)右界
使用负下标时,下标i取值范围为-len(a)-1 < i <=-1  超出范围为越界,i小于len(a)表示越(数轴)左界

数组操作中一般通过 “:” 和数字或变量的组合来灵活使用里面的元素
第一个“:” 表示循环,第二个“:” 表示设定后面数字为步长。比如i:j:k,表示从i到j步长为k,逐个顺次获取。i到j满足左闭右开原则 。
没有冒号表示正常的数组单个元素访问;没有第二个冒号就表示默认的步长为1,从i到j左开右闭步长为1逐个访问。

1、k缺省(忽略未写出的默认值)为1;当k>0时,i缺省为0,j缺省为len(a) ; 当k<0时,i缺省为-1,j缺省为-len(a)-1。
2、当k>0时,可以将i,j全转换成正下标去理解。 当i或j为正且越正数下标右界时,越界的数全部取正下标右界len(a)。 当i或j为负且越负数下标的左界时,越界的数全部取左界前的有效值-len(a),然后再转换成正下标,转换规则为:正下标=len(a)+负下标。   3、当k<0是,可以将i,j全部转换成负下标去理解。 当i或j为负且越负数下标左界时,越界的数全部取负下标左界-len(a)-1。 当i或j为正且越正数下标右界时,越界的数全部取右界前的有效值len(a)-1,然后再转换为负下标,转换规则为:负下标=正下标-len(a)。 4、k不能等于0。

对于循环操作中下标的操作应该先处理越界,然后再根据的正负转换成对应的正负坐标。

a='python'   #len(a)=6
i=1
j=4
k=1
b=a[i:j:k]  #结果为yth  。意思为从下标i个开始到下标j-1结束,步长为k,(k为整数且不能等于0,缺省为1),第一个冒号满足左闭右开原则 。
b=a[i]      #结果为y ,无冒号,表示普通的数组单个元素访问,根据下标获取值。
b=a[-1]     #结果为n。
b=a[-6]     #结果为p。
b=a[i:j]    #结果为yth,从i到j,步长为缺省(默认)1 
b=a[0:3:1]  #结果为pyt,第一个冒号满足左闭右开原则,下标为3的值是取不到的
b=a[0:5:1]  #结果为pytho,第一个冒号满足左闭右开原则
b=a[0:6:1]  #结果为python,第一个冒号满足左闭右开原则
b=a[0:7:1]  #结果为python,等价于a[0:6:1],当第一个冒号右边的值大于len(a)时,
b=a[0:100:1]#结果为python,此处正下标越界,等价于a[0:6:1],注意第一个冒号右边的100已经超越了正下标的右限。
b=a[6:100:1]#结果为空,等价于a[6:6:1],注意第一个冒号左右边都已经超越了正下标的右限
b=a[7:100:1]#结果为空,等价于a[6:6:1],注意第一个冒号左右边都已经超越了正下标的右限
b=a[-6:6:1] #结果为python,等价于a[0:6:1]
b=a[-7:6:1] #结果为python,左闭右开,此处负下标越界,等价于a[-6:6:1]=a[0:6:1]
b=a[-100:6:1]#结果为python,注意-100已经超过了负下标的左限,等价于a[-6:6:1]=a[0:6:1]
b=a[-100:100:1]#结果为python,注意-100已经超过了负下标的左限,等价于a[-6:6:1]=a[0:6:1]
b=a[-6:-1:1]#结果为pytho,等价于a[0:5:1],注意,-6转换成正坐标为0,-1转换为正坐标为5.
b=a[-100:-1:1]#结果为pytho,注意-100已经超过了负下标的左限,等价于a[-6:-1:1]=a[0:5:1]
b=a[0:-1:1]#结果为pytho,等价于a[0:5:1]
b=a[0:-100:1]#结果为空,注意-100已经超过了负下标的左限,等价于a[0:-6:1]=a[0:0:1]
b=a[0:-6:1] #结果为空,等价于a[0:0:1]
b=a[0:-7:1] #结果为空,等价于a[0:0:1]
b=a[:j] #结果为pyth。k缺省(默认)为1,k大于0时,i缺省(默认)为0,j缺省(默认)为len(a)
b=a[i:] #结果为ython,表示从下标i开始到最后一个(下标为len(a)-1)
b=a[:]  #结果为python,等价于a[0:6:1],表示从下标0开始到最后一个结束,步长为1。
b=a[::] #结果为python。等价于a[0:6:1]。a[i:j:k]中,k缺省为1,当k大于0时,i缺省为0,j缺省为len(a)。
b=a[::10] #结果为p。等价于a[0:6:10]。a[i:j:k]中,当k大于0时,i缺省为0,j缺省为len(a)

k为负,表示从右往左顺次获取数组中的值,转换成负下标后,-len(a)-1<=j<i<=-1才能获取到值。
b=a[i:j:-1]  #结果为空,等价于a[1:4:-1]=a[-5:-2:-1]
b=a[-1:-7:-1]#结果为nohtyp,第一个冒号满足左闭右开原则。
b=a[-1:-100:-1]#结果为nohtyp,负下标越界,等价于a[-1:-7:-1]
b=a[4:0:-1] #结果为ohty,k为负数,将i,l转换成负下标理解,等价于a[-2:-6:-1],注意4转换成负下标为-2,0转换成负下标为-6
b=a[4:-1:-1]#结果为空,可以理解为a[-2:-1:-1]
b=a[4:-100:-1]#结果为ohtyp,k为负,将i转成负下标理解,同时j越界,等价于a[-2:-100:-1]=a[-2:-7:-1]
b=a[-1:0:-1]#结果为nohty,可以理解为a[-1:-6:-1]
b=a[0:-1:-1]#结果为空,可以理解为a[-6:-1:-1]
b=a[0:-2:-1]#结果为空 ,可以理解为a[-6:-2:-1]
b=a[-2:0:-1]#结果为ohty,可以理解为a[-2:-6:-1]
b=a[-1:6:-1]#结果为空,可以理解为a[-1:5:-1]=a[-1:-1:-1]
b=a[-1:100:-1]#结果为空,可以理解为a[-1:5:-1]=a[-1:-1:-1]
b=a[6:100:-1]#结果为空,可以理解为a[5:5:-1]=a[-1:-1:-1]
b=a[4:100:-1]#结果为空,可以理解为a[4:5:-1]=a[-1:-1:-1]
b=a[100:100:-1]#结果为空,可以理解为a[5:5:-1]=a[-1:-1:-1]
b=a[100:4:-1]#结果为n,可以理解为a[5:4:-1]=a[-1:-2:-1]
b=a[100:-100:-1]#结果为nohtyp,可以理解为a[5:-7:-1]=a[-1:-7:-1]
b=a[100:0:-1]#结果为nohty,可以理解为a[5:0:-1]=a[-1:-6:-1]
b=a[-100:100:-1]#结果为空,可以理解为a[-7:6:-1]=a[-7:-1:-1]
b=a[:-1]  #结果为pytho ,等价于a[0:5:1]
b=a[::-1] #结果为nohtyp,等价于a[-1:-len(a)-1:-1] = a[-1:-7:-1]


插入
python中的list,tuple,dictionary 与numpy中的array mat是有区别的。
 

String(字符串)

t = string
string可以用‘’或“”圈起来

>>> t=Hello World!
>>> t=Hello World!

>>> t[0]
H 
>>> t
Hello World!

List(链表)

t = [value,value…]
value类型可以各异

>>> t={
abac, ggg, 2,[1,2,3],(1,22,3)}

>>> t[0]
abac 

Tuple(元组)

t = (value,value…)
value类型可以各异,但是Tuple元素数量不能减少,且不能直接给元素赋值,具体看连接

>>> t=(abac, ggg, 2,[1,2,3],(1,22,3))

>>> t[0]
abac 

Dictionary(字典)

t = {key1 : value1, key2 : value2}

>>> t = {
a: 1, b: 2, b: 3}

>>> t[b] 
3 
>>> t
{
a: 1, b: 3}

Set(集合)

t={value1,value2}或者
t=set(value)

>>>basket = {
apple, orange, apple, pear, orange, banana}

>>> print(basket) # 这里演示的是去重功能 

{
orange, banana, pear, apple}

>>> orange in basket # 快速判断元素是否在集合内 

True 

>>> crabgrass in basket 

False

Numpy.array(数组)

t = [value,value…]

value类型必须一致,要么都是数字,要么都是链表,要么都是字符串

初始化连接1
连接2

>>> t = np.random.rand(3,4)

>>> t
array([[0.17359552, 0.61668592, 0.97915523, 0.99638115],

       [0.98119493, 0.36911137, 0.45306895, 0.09396056],

       [0.11345902, 0.17136475, 0.85474534, 0.56421904]])

Numpy.mat(矩阵)

t = [value,value…]

value类型必须一致,要么都是数字,要么都是链表,要么都是字符串。与array的区别在初始化与操作上的区别,需要可以去做相关搜索 或看

链接

>>> t = np.random.rand(3,4)
>>> t=np.(t)

>>> t
array([[0.17359552, 0.61668592, 0.97915523, 0.99638115],

       [0.98119493, 0.36911137, 0.45306895, 0.09396056],

       [0.11345902, 0.17136475, 0.85474534, 0.56421904]])

上面的各种类型中Dictionary 与Set 是不能通过数字下标访问的,Dictionary需要通过key来访问。
python3.7中只有numpy的array与numpy的mat才可以有多维数据的访问。

numpy中为方便矩阵操作更进一步使用了 “,” 符号(数组操作中 逗号 在原生的python中没有定义)
在numpy 中上面操作的只是一个维度的操作描述,通过逗号来间隔不同维度的操作,如下

import numpy as np
a=[['1','2','3','4','5','6'],['a','b','c','d','e','f']]
print(a)
print(type(a))
#print(a[:,:3]) #TypeError: list indices must be integers or slices, not tuple #对python的list,tuple,array 操作时逗号被单纯的当做一个tuple,操作中没有意义
a = np.mat(a) #对python中的numpy中的mat或者array操作时,逗号用于作为不同维度的操作描述的间隔符。
print(a)
print(type(a))
print(a[:,:3]) #获取所有行的前3列

python数组-1成员_python[1,2,3]*3

a=[[‘1′,’2′,’3′,’4′,’5′,’6’],[‘a’,’b’,’c’,’d’,’e’,’f’]]  #定义二维数组,第一维就是两个子数组,也就是内部两个“[…..]”整体作为一个维度。第二维为子数组中具体的内容,比如第一个数组中的:’1′,’2′,’3′,’4′,’5′,’6’,或第二个数组中的’a’,’b’,’c’,’d’,’e’,’f’。
a=np.array(a)  #只有numpy中的array或者mat才对操作中的 “,” 起效用!!!!!!!!!!
b=a[:,0]           #结果为[‘1’ ‘a’]。操作中的 “,” 前面的 “:” ,表示对第一维数据进行遍历,“,” 后面的表示对第二维数据取第一个。
b=a[::-1,:3]     #结果为 下面的矩阵。对第一维倒序,对第二位取前三个。
python数组-1成员_python[1,2,3]*3
b=a[::-1,::-1]  #对两维的数据都取倒序。结果如下
python数组-1成员_python[1,2,3]*3

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/170307.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 解决 js 报错 xxx is not defined「建议收藏」

    解决 js 报错 xxx is not defined「建议收藏」报错信息:UncaughtReferenceError:xxxisnotdefined处理该问题从下面几个方面入手:检查xxx的js文件是否已经引入到该页面检查xxx的js文件的路径是否有问题检查xxx的js文件的引用顺序检查js代码写的是否有问题范例:报错:UncaughtReferenceError:laytpl…

  • 日语自动词和他动词是什么意思_日语自动词他动词总结

    日语自动词和他动词是什么意思_日语自动词他动词总结http://coffeejp.com/bbs/thread-182243-1-1.html自动词:强调自发的行为他动词:强调他人驱使的行为拿到两个动词后按照它们的构词形式可以进行区分,基本可以分为4种方法(1)两个动词都以「る」结尾时:看「る」前的那个假名(汉字除外),如果是「あ」段假名,一般是自动词;如果是「え」段假名,一般是他动词(2)两个动词一个以「る」结尾,另一个不是以「る」结尾…

    2022年10月29日
  • HTML5新增了哪些标签_标签标准

    HTML5新增了哪些标签_标签标准在我们平时所写的ASP.NET中,我们更多的是去使用服务器端控件:&lt;asp:&gt;。与此同时,我们却忽略了很多HTML元素的使用。在这章,让我们来简单的对HTML的一些元素的标准来做简单的回顾。1.&lt;q&gt;和&lt;blockquote&gt;对于这两个元素,我想很多经常去使用.NET服务器端控件,以及VisualStudio或者DW等可视化工具的人,应该对他…

    2022年10月17日
  • vijos 1115 火星人

    vijos 1115 火星人

  • oracle优化书籍推荐

    经常听到有做应用的朋友抱怨数据库的性能问题,比如非常低的并发,令人崩溃的响应时间,长时间的锁等待,锁升级,甚至是死锁,等等。本文针对应用开发人员经常接触的性能问题,推荐几本书,请大家关注。 一、《 oracle9i/10g 编程艺术》内容简介 本书是一本关于Oracle9jaz&10g数据库体系结构的权威图书,涵盖了所有最重要的Ora

  • 模式识别之图片搜索—匹配原理

    模式识别之图片搜索—匹配原理

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号