>  기사  >  백엔드 개발  >  Python 슬라이스 인덱스 사용법

Python 슬라이스 인덱스 사용법

不言
不言원래의
2018-06-04 18:00:022512검색

이 글은 주로 Python 슬라이스 인덱스의 사용법을 소개하고, Python 슬라이스 인덱스의 일반적인 사용 방법과 작동 주의 사항을 자세히 분석하여 도움이 필요한 친구들이 참고할 수 있습니다.

이 글의 예제는 설명합니다. Python 슬라이스 인덱스의 사용법. 참조를 위해 모든 사람과 공유하세요. 세부 사항은 다음과 같습니다.

Python에서는 간단한 대괄호와 아래 첨자를 사용하여 시퀀스의 각 요소에 액세스할 수 있습니다. 이 방법을 슬라이싱 연산자라고 합니다. 형식:

[], [:], [::]

특정 데이터 요소에 액세스하는 구문은 다음과 같습니다.

순서[ index]sequence[index]

sequence是序列的名字,index是访问元素的对应的偏移量,为正数,0<=index<=len(sequence)-1;使用负索引的时候,其范围为-len(sequence) <=index <= -1

由于Python是面向对象的,所以也可以通过在序列后直接加上一个索引进行访问,如下所以

print (&#39;a&#39;,&#39;b&#39;,&#39;c&#39;,&#39;d&#39;)[2]

对于访问多个元素的情形

sequence[starting_index:ending_index]

下面就访问的几种方式进行举例说明:

sequence="abcdefgh"
print len(sequence)  #显示序列长度
print sequence    #打印完整序列
print sequence[:]
print sequence[2:3]  #切片显示,不指定步长默认为1,指定了步长(这里是setp为2)按照步长进行显示
print sequence[1:6:2]
print sequence[3]   #元素访问
print sequence[0:3]  #从首元素开始访问,访问区间为[0,3),左开you
print sequence[:3]
print sequence[2:8]  #从第二个元素一直访问到最后一个元素
print sequence[2:]
print sequence[::-1] #从最后一个元素开始访问,逆序访问,可以视为“翻转”操作
print max(sequence)
print min(sequence)
print sequence.index(&#39;c&#39;)

这里要注意的是重复操作符 *

sequence * copies_int

当需要一个序列的多个拷贝时,重复操作符就可以发挥作用了,copies_int 必须为整形

print sequence*3   #使用重复操作符

连接操作符 +

sequence1 + sequence2

允许使用 + 将两个相同类型的序列进行连接

print sequence + sequence

但注意看起来很方便,但是这种操作不是最快或者最有效地,对字符串来说,这个操作不如把所有子字符串放到一个列表中或者可迭代对象中,然后使用join()方法来把所有的内容连接在一起节约内存;而对于列表而言,推荐是哟个列表类型的extend()方法来把两个或者多个列表对象合并

str.join(sequence) #方法用于将序列中的元素以指定的字符连接生成一个新的字符串

str = "-";
seq = ("a", "b", "c"); # 字符串序列
print str.join( seq );

输出为:

a-b-c

list.extend(seq)  #函数用于在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)

aList = [123, &#39;xyz&#39;, &#39;zara&#39;, &#39;abc&#39;, 123];
bList = [2009, &#39;manni&#39;];
aList.extend(bList)
print "Extended List : ", aList ;

输出为:

Extended List :  [123, &#39;xyz&#39;, &#39;zara&#39;, &#39;abc&#39;, 123, 2009, &#39;manni&#39;]

切片索引的语法要比简单的单一元素索引方法灵活很多,开始和结束索引值可以超过字符串的长度。即起始索引值可以小于0,而结束索引值可以大于序列的长度,如:

print (&#39;Faye&#39;,&#39;Leanna&#39;,&#39;Daylen&#39;)[-100:100]

输出为:

(&#39;Faye&#39;, &#39;Leanna&#39;, &#39;Daylen&#39;)

如果有一个字符串,想通过循环按照这样的方式进行显示:每次都把位于最后的那一个字符砍掉,如何实现呢?

sequence = &#39;abcdef&#39;
i = -1
for i in range(-1,-len(sequence),-1):
  print sequence[:i]

输出为:

abcde
abcd
abc
ab
a

发现没有显示第一个,即是没有显示完整的字符串,除开另外单独定义一个sequence[:0]

sequence

는 시퀀스의 이름이고,

index

는 액세스된 요소의 해당 오프셋(양수),

0<=index<=len(sequence)-1

입니다. ; 음수 인덱스를 사용하는 경우 범위는

-len(sequence) <=index <= -1

Python은 객체 지향이므로 시퀀스 바로 뒤에 인덱스를 추가하여 액세스할 수도 있습니다.

sequence = &#39;abcdef&#39;
for i in [None] + range(-1,-len(sequence),-1):
  print sequence[:i]

🎜 🎜여러 요소에 액세스하는 상황의 경우🎜🎜sequence[starting_index:ending_index]🎜🎜다음은 여러 액세스 방법의 예입니다.🎜🎜🎜
abcdef
abcde
abcd
abc
ab
a
🎜🎜🎜🎜 여기서 주목해야 할 것은 중복 연산자 *🎜🎜🎜sequence * Copys_int🎜🎜시퀀스의 여러 복사본이 필요한 경우 반복 연산자가 작동하며 🎜copies_int🎜는 정수여야 합니다 🎜🎜🎜 rrreee🎜🎜🎜 🎜연결 연산자 +🎜🎜🎜sequence1 + 시퀀스2🎜🎜를 사용하면 +를 사용하여 동일한 유형의 두 시퀀스를 연결할 수 있습니다🎜🎜🎜rrreee🎜🎜🎜하지만 매우 편리해 보입니다. , 그러나 이 작업은 가장 빠르거나 효율적이지는 않습니다. 문자열의 경우 이 작업은 모든 하위 문자열을 목록이나 반복 가능한 객체에 넣은 다음 join() 메서드를 사용하여 모든 내용을 결합하는 것보다 나쁩니다. 함께 사용하면 메모리가 절약됩니다. 두 개 이상의 목록 개체를 병합하려면 목록 유형의 extend() 메서드를 사용하는 것이 좋습니다🎜🎜🎜rrreee🎜🎜🎜🎜rrreee 🎜🎜🎜출력은 다음과 같습니다. : 🎜rrreee🎜🎜rrreee🎜🎜🎜🎜rrreee🎜🎜🎜출력은 다음과 같습니다. 🎜rrreee🎜슬라이스 인덱스의 구문은 단순한 단일 요소 인덱스 방법보다 훨씬 유연하며 시작 및 끝 인덱스 값은 문자열 길이를 초과합니다. 즉, 시작 인덱스 값은 0보다 작을 수 있고 끝 인덱스 값은 시퀀스 길이보다 클 수 있습니다. 예: 🎜🎜🎜rrreee🎜🎜🎜출력은 다음과 같습니다. 🎜rrreee🎜문자열이 있는 경우 , 루프를 통해 다음과 같이 표시하고 싶습니다. 매번 마지막 문자를 자르는 방법은 무엇입니까? 🎜🎜🎜rrreee🎜🎜🎜출력은 다음과 같습니다. 🎜rrreee🎜첫 번째 항목이 표시되지 않습니다. 즉, 별도의 시퀀스[:0], 여기서 None을 사용하십시오. 인덱스 값 🎜🎜🎜rrreee🎜🎜🎜 출력은 다음과 같습니다: 🎜rrreee🎜🎜🎜🎜🎜🎜🎜🎜

위 내용은 Python 슬라이스 인덱스 사용법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.