序列的其他属性

Python序列(列表、元组、字符串)的其他属性

1. 序列负下标

元组、列表都属于序列

  • 传统取最后一个元素:seq[len(seq)-1]
  • Python快捷负索引:
  • seq[-1]:获取最后1个元素
  • seq[-2]:获取倒数第2个元素
booklist = ["java","csharp","cplusplus","python","music","php"]
print(booklist[-1])   # php
print(booklist[-2])   # musicCode language: PHP (php)

2. 切片(分片)[start:end]

语法:序列[起始下标:结束下标]
取左不取右:包含start,不包含end;返回新副本,原序列不变。

示例
booklist = ["java","csharp","cplusplus","python","music","php"]
part_books_list = booklist[2:4]
print(part_books_list)
# 输出:['cplusplus', 'python']Code language: PHP (php)

字符串也支持切片

字符串同样属于序列,可以切片截取一部分字符

sayhello = "hello how are you"
part_sayhello = sayhello[5:10]
print(part_sayhello)

# 结束下标可以超出字符串实际长度,不会报错,直接取到末尾
part_sayhello = sayhello[2:99]
print(part_sayhello)Code language: PHP (php)

3. append 和 extend 的区别

  • append(xxx):把传入的整个对象,作为1个元素追加进列表
  • extend(xxx):把传入序列里的每一个元素拆开,逐个追加到列表
booklist = ("sdsdf","sdfdsf","4354354")
booklist_other = []

# append:把整个元组当成一个元素
booklist_other.append(booklist)
print(booklist_other)
# [('sdsdf', 'sdfdsf', '4354354')]

# extend:拆开元组,把里面每一项加进去
booklist_other = []
booklist_other.extend(booklist)
print(booklist_other)
# ['sdsdf', 'sdfdsf', '4354354']Code language: PHP (php)

4. list.pop() 删除并取出元素

pop会删除列表指定下标元素,并且把被删除的值作为返回值,可以赋值给变量;列表长度自动变化。

  • pop(index):删除下标为index的元素
  • pop()不传参数:默认删除列表最后一个元素
todaytemperatures = [23,32,33,31]
todaytemperatures.append(29)

morning = todaytemperatures.pop(0)  # 删除下标0,把23赋值给morning
print(morning)
print(todaytemperatures)

# 直接打印pop返回值
print(todaytemperatures.pop(1))

# pop不带参数,删除末尾
last = todaytemperatures.pop()
print(last)Code language: PHP (php)


代码

# 负索引
booklist = ["java","csharp","cplusplus","python","music","php"]
print(booklist[-1])
print(booklist[-2])

# 切片
part = booklist[2:4]
print(part)

# 字符串切片
s = "hello how are you"
print(s[2:99])

# append vs extend
t = ("a","b","c")
lst = []
lst.append(t)
print("append结果",lst)

lst2 = []
lst2.extend(t)
print("extend结果",lst2)

# pop
temps = [23,32,33,31]
temps.append(29)
val = temps.pop(0)
print("pop取出的值",val)
print("pop之后列表",temps)
temps.pop()
print("不传参pop删末尾",temps)Code language: PHP (php)

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注