Python中的列表、元组、字典、字符串及切片操作

本文深入探讨Python中的基本序列数据结构,包括列表的定义、操作方法和for循环;元组的定义、单个元素处理及与列表的转换;字典的定义和操作;字符串的一系列操作;以及切片操作的概念和格式。通过对这些基础知识的掌握,能够更好地理解和运用Python序列。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、列表

我们引入一个新的概念:数据结构
数据结构是通过某种方式组织在一起的数据元素的集合,这些数据元素可以是数字或字符,甚至可以是其他数据结构,在python中,最基本的数据结构是序列,序列中的每个元素匾被分配一个序号——即元素的位置,也称为索引,第一个索引是0,第二个则是1,以此类推

1.列表的定义

列表由一系列特定顺序排列的元素组成,你可以创建包含字母表中所有字母,数字或所有家庭成员姓名的列表;也可以将任何东西加入列表中,其中的元素之间可以没有任何关系


2.列表对象的方法

方法说明
list.append(x)将元素x添加至列表尾部
list.extend(L)将列表L中的所有元素添加至列表尾部
list.insert(index,x)在列表指定位置index处添加元素x
list.remove(x)在列表中删除首次出现的指定元素
list.pop([index])删除并返回列表对象指定位置的元素,默认为最后一个元素
list.clear()删除列表中所有元素,但保留列表对象,在python2中没有
list.index(x)返回值为x的首个元素的下标,若元素不存在则抛出异常
list.count(x)返回指定元素x在列表中的出现次数
list.reverse()对列表元素进行原地翻转
list.sort()对列表元素进行原地排序

【1】修改列表元素

bicycles = ['bmw', 'trek', 'yamaha']
print bicycles
bicycles[0] = 'honda'
print bicycles

这里写图片描述
【2】添加列表元素

bicycles = ['bmw', 'trek', 'yamaha']
print bicycles
bicycles.append('readline')
print bicycles

这里写图片描述
空列表添加元素

bicycles = []
print bicycles
bicycles.append('honda')
bicycles.append('forever')
bicycles.append('ofo')
print bicycles

这里写图片描述

【3】插入列表元素

num = [1, 2, 3, 4, 5, 6, 7, 8]
print num
num.insert(3, 'four')
print num

这里写图片描述
【4】拼接两个列表

bicycles = ['bmw', 'trek', 'yamaha']
num = [1, 2, 3, 4, 5, 6, 7, 8]
bicycles.extend(num)
print bicycles

这里写图片描述
【5】删除列表元素

# del关键字,从内存中删除元素,不可逆
bicycles = ['bmw', 'trek', 'yamaha']
del bicycles[1]
print bicycles
# 把列表中最后一个元素弹出
bicycles = ['bmw', 'trek', 'yamaha']
bicycles.pop()
print bicycles

# pop删除的元素还可以继续使用
bicycles = ['bmw', 'trek', 'yamaha']
pop = bicycles.pop()
print pop

# remove 删除元素,不可恢复
bicycles = ['bmw', 'trek', 'yamaha']
bicycles.remove('bmw')
print bicycles

这里写图片描述
【6】统计列表中某一个元素出现的次数

cars = ['bmw','audi','toyoto','subaru']
print len(cars)

cars = ['bmw','audi','toyoto','subaru','bmw']
# len:获得列表的长度
# print len(cars)
# count:可以统计列表中某一个元素出现的次数
print cars.count('bmw')

cars = ['bmw','audi','toyoto','subaru','bmw']
print cars.count('bmw')
# remove:默认删除列表中出现的第一个元素,此元素在列表中不唯一
cars.remove('bmw')
print cars

这里写图片描述
【7】对列表中的元素进行排序

# sort:对列表中的元素进行排序(升序)
name = ['kobe','james','wade','curry']
print name
name.sort()
print name

# sort(reverse=True):倒序
name.sort(reverse=True)
print name

这里写图片描述

name = ['kobe','james','wade','curry']
print name
# reverse():倒着打印列表元素
name.reverse()
print name

这里写图片描述

name = ['kobe','james','wade','curry']
# 临时对列表中的元素进行排序
print sorted(name)
print name

这里写图片描述


3.for语句

range ([start],stop,[step]])

此时用到range()内置函数,该函数接受3个参数:第一个参数表示起始值(默认为0);第二个参数表示终止值(结果中不包括这个值);第三个参数表示步长(默认为1),函数返回一个range对象(在Python2中返回一个包含整数的列表)

for value in range(1,5):
    print value

#数字组成列表:
nums = list(range(1,6))
print nums

# 列出元素中奇数的元素(前面两个为数字,2为步长)
nums = list(range(1,11,2))
print nums

这里写图片描述
前十个整数的平方

#建立一个空列表
squares = []
for values in range(1,11):
    square = values ** 2
    squares.append(square)
print squares

这里写图片描述


二、元组

1.元组的定义

列表中通常保存相同类型的数据,而元组中通常保存不同类型的数据

Tuple(元组)与列表相似,不同之处在于元组的元素不能修改
元组表示多个元素组成的序列
元组在python开发中,有特定的应用场景
用于存储一串信息,数据之间使用,分隔
元组用()定义

info_tuple = ('李四','张三','张三','18','1.75')
# 1.取值和取引索
print info_tuple[0]
print info_tuple.index('张三')

# 统计计数(有几个张三)
print info_tuple.count('张三')

# 统计元组中包含元素的个数
print len(info_tuple)

这里写图片描述

info_tuple = ('李四','张三','张三','18','1.75')
for my_info in info_tuple:
    print my_info

info_tuple = ('小明',18,1.80)
# 格式化字符串后面(),本质上就是一个元组
print '%s 的年龄是:%d 身高是:%.2f' %info_tuple

这里写图片描述


2.单个元素的元组

一个元素的元组:必须要加”,” 不然不识别,系统会认为是int(整型),加了”,”后,查看类型才是元组(tuple = (1,))

这里写图片描述


3.元组和列表之间的相互转换

1.列表转元组
这里写图片描述

2.元组转列表
这里写图片描述


三、字典

1.字典的定义

dictionary(字典)是除列表以外python中最灵活的数据类型
字典同样可以用来存储多个数据
通常用于存储描述一个物体的相关信息
和列表的区别:
列表是有序的对象集和
字典是无序的对象集和
字典用{}定义
字典使用键值对存储数据,键值对之间使用,分隔
键key是索引
值value是数据
键和值之间使用;分隔
键必须是唯一的(因为我们必须通过键来找到数据)
值可以取任何数据类型,但键只能使用字符串,数字或元组

字典是一个无序的数据集和,使用print函数输出字典时,常输出的顺序和定义的顺序是不一致的

# 字典,无序的数据集和
message = {'name':'kobe',
           'age':36,
           'height':1.99,
           'weight':80}
print message

这里写图片描述


2.对字典的相关操作

【1】字典的取值,增加,修改,删除

# 字典
message = {'name':'kobe',
           'age':36,
           'height':1.99,
           'weight':80}
print message

# 1.取值
print message['name']

# 2.增加/修改
message['sex'] = 'man'
print message
message['height'] = '2.01'
print message

# 3.删除
message.pop('sex')
print message

这里写图片描述
【2】字典中统计键值对的数量、合并字典以及清空字典

message = {'name':'kobe',
           'age':36,
           'height':1.99,
           'weight':80}

# 1.统计键值对的数量
print len(message)

# 2.合并字典
# 字典的自定义键是可变的也是唯一的
temp_dict = {'height':2.01,'age':37,'sex':'man'}
message.update(temp_dict)
print message

# 清空字典
message.clear()
print message

这里写图片描述
【3】字典的for循环 ,打印键值和对应的值

message_dict = {'name':'harry',
                'qq':'123456',
                'phone':'10086'}
for k in message_dict:
    print '%s ==> %s' %(k,message_dict[k])

这里写图片描述
【4】for的嵌套

card_list = [{'name':'tom','qq':'123456','phone':'10001'},
             {'name':'jimmy','qq':'234567','phone':'10086'}]
for card_info in card_list:
    print card_info
    for k in card_info:
        print '%s -- %s' % (k,card_info[k])

这里写图片描述


四、字符串

1.对字符串的系列操作

【1】字符串的输出


str1 = 'hello python'
for char in str1:
    print char, #后面加','表示不换行输出
print '' #表示换行

str2 = u'湖人总冠军'   # 打印汉字组成的字符串前面要加u
for char in str2:
    print char,

这里写图片描述
【2】字符串的查找与统计

hello_str = 'hello python llo'

# 1.统计字符串的长度
print len(hello_str)

# 2.统计子字符串的次数
print hello_str.count('l')

# 3.某一个字符串出现的位置
print hello_str.index('llo')
# 使用index()方法的时候,如果子字符串不存在,程序会报错
#print hello_str.index('ww')

这里写图片描述
【3】判断字符串中的元素结构

# 1.判断字符串是否只包含数字
num_str = '1'
print num_str.isdigit()

# 2.判断是否以指定的字符串开始
hello_str = 'hello python'
print hello_str.startswith('hello')

# 3.判断字符串是否以指定的字符串结束
print hello_str.endswith('okc')

# 4.查找指定字符串
# 如果查找的指定字符串不存在 程序不会报错 会返回-1
print hello_str.find('linux')

#5.替换字符串
print  hello_str.replace('python','world')
print hello_str

# 6.判断字符串是否有空格 
null = ' '
print  null.isspace()

这里写图片描述


五、切片操作

1.切片概念

切片是Python序列的一个重要操作,适用于列表、元组、字符串、range对象等类型。
切片使用2个冒号分隔的3个数字来完成,第一个数字表示切片的开始位置(默认为0),第二个数字表示切片截至(但不包含)位置(默认为列表长度),第三个数字表示切片的步长(默认为1),当步长省略时可以省略最后一个冒号。
可以使用切片来截取列表中的任意部分,得到一个新的列表。也可以通过切片来修改和删除列表中的部分元素,甚至可以通过切片为列表添加元素。

2.切片格式

格式:字符串/列表/元组【开始索引:结束索引:步长(有跳跃有间隔的对字符串切片)】

最后一个索引的倒叙索引是:-1
注意:
【1】.指定的区间属于左闭右开型,从起始位置开始,到结束位置的前一位(不包含结束位本身)
【2】.从头开始,开始索引数字可以省略,冒号不能省略
【3】.到末尾结束,结束索引数字可以省略,冒号不能省略
【4】.步长默认为1

# 建立一个字符串
num_str = '0123456789'

# 从索引为2处取到索引为5前
print num_str[2:5]

# 从索引为2处取到索引为6前
print num_str[2:6]

# 从索引为2处取到字符串末尾
print num_str[2:]

# 从开头处取到索引为9前
print num_str[:9]

# 取出全部字符串
print  num_str[:]

# 从开头取到索引为10前,步长为2
print num_str[0:8:2]

# 取出步长为2的全部字符串
print num_str[::2]

# 取倒数第一个字符
print num_str[-1]

# 从索引为2取到索引为-1前
print  num_str[2:-1]

# 让字符串整体倒序
print num_str[-1::-1]

这里写图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值