字符串、列表、元组的异同

相同

拼接

字符串、列表及元组均可通过“+”号进行拼接,但要求同种类型数据之间才能拼接

#字符串拼接
a = "Hello"
b = ",Python"
print(a + b)

#列表拼接
li1 = ["I"]
li2 = ["Love","Python"]
print(li1 + li2)

重复

字符串、列表及元组均可通过“*”号进行重复输出

#字符串重复
a = "City_college "
print(a * 3)

#列表重复
li2 = ["Love","Python"]
print(li2 * 3)

索引、切片

字符串、列表及元组均可通过“[:],[::]”进行部分输出

str = "Python"
print(str[2])

#遍历数组
for i in range(len(str)):
    print(str[i],end="")

for char in str:
    print(char,end = "")
    
#切片
str = "life is short,you need python."
print(len(str))
print(str[:4])

#翻转输出
str = "life is short, you need python."
print(len(str))
print(str[::-1])

#列表索引,切片
li = ['C','i','t','y',"city",'college','zhengjiang']
print(len(li))
print((li[0],li[-7]))
print(li[:5])

计数

字符串、列表及元组均可通过- count()函数对指定元素进行计数

#字符串计数
str = "LIFE is short, you NEED python."
print(str.count("o",9,17))	#指定范围内查找指定的参数

#列表计数
li = ['a','b','c','d','e','city','e']
print(li.count('e'))

遍历

字符串,列表及元组均可通过三种方式进行遍历

(1)元素遍历

li = ['a','b','c','d','e','city','e']
for char in li:
    print(char)

(2)索引遍历

li = ['a','b','c','d','e','city','e']
for i in range(len(li)):
    print(li[i])

(3)枚举遍历

- enumerate()	#对于一个可迭代的/可遍历的对象(如列表,字符串等),enumerate()将其组成一个索引序列,利用它我们可以获得索引和值

li = ['a','b','c','d','e','city','e']
for i in enumerate(li,2):
    print(i)

不同

字符串

(1)字符串创建:用引号(“ ”)来创建字符串

name = "hangzhou"
area = "gongshu"
history = "2000"
person = """苏轼,许仙,白素贞"""
captical_of = '''吴越,南宋'''

sent = "i'm lilei"
sent2 = '"He is my brother",he said'
sent3 = '''轻轻地我走了,
正如我轻轻地来。'''

(2)大小写转换:

str = "LIFE is short, you NEED python."
print(str.lower())	#转小写
print(str.upper())	#转大写
print(str.swapcase())	#大小写互换
print(str.title())	#转为标题形式
print(str.capitalize())	#首字母大写

(3)删除指定字符:

str.strip()		#删除两边指定字符
str.lstrip()	#删除左边指定字符
str.rstrip()	#删除右边指定字符

(4)字符串搜索定位和替换

str.find()	#查找元素并返回第一次出现时的索引值,查找不到返回-1
str.rindex()	#从右往左查找
str.replace([现有字符][替换字符])

(5)字符串条件判断

str.isalnum()	#判断字符串有字母或者数字组成
str.isalpha()	#判断仅有字母组成
str.isdigit()	#判断仅有数字组成

(6)字符串的分割变换

"字符".join(str)	#将指定字符插入到元素之间
str.split("字符")	#以指定字符分割并去除该字符
str.partition("字符")	#以指定字符分割字符串并保留字符

(7)ASCII值和字符的转化

chr()	#digit--->alpha
ord()	#alpha--->digit

列表

(1)列表创建:用方括号括起来的[],每个元素以逗号分隔

#创建空列表
li = []
print(type(li))

#创建多元素列表
li = [1,2,3,"abcd","City","College",["I","Love","Python"]]

(2)增删改查

# 1.增
- append()
- extend()	#取出元素再添加
- insert()	#按照索引添加

li = ["City","College"]
print((id(li)))
li1 = ["a","b","c"]
li.append(li1)
print(li)
print(id(li))

li = ["City","College"]
li1 = ["a","b","c"]
li.extend(li1)
print(li)

li = ["City","College"]
li1 = ["a","b","c"]
li.insert(1,li1)
print(li)

# 2.改
li = ["City","College","a","b","c"]
li1 = ["a","b","c"]
li[4] = "6666"
li[2:4] = ["x","y","z"]
print(li)

#3.删除
- pop()	#如果不指定索引,默认删除最后一个元素

li = ['a','b','c','d','e']
print(li.pop(2))
print(li)

- remove() #移除第一次遇到的指定元素

li = ['a','b','c','d','e','city','e']
print(li.remove("e"))
print(li)

- del()

li = ['a','b','c','d','e','city','e']
del li[5]
print(li)

- clear() #清空列表

li = ['a','b','c','d','e','city','e']
li.clear()
print(li)

# 4.查 --->索引,切片

元组

(1)元组创建:用括号括起来的(),每个元素以逗号分隔,单个元素的元组需在单元素后添加逗号

tp = ("abc",)
tp = tuple()
tp = ("abc")	#此时tp为字符串

(2)删除

元组不可改变,只能通过del进行全部删除,不能删除指定元素

总结

操作字符串列表元组
可变NOYESNO
拼接str1+str2list1+list2tuple1+tuple2
重复str*n(n为整数)list*n(n为整数)tuple*n(n为整数)
索引str[index]list[index]tuple[index]
切片str[index1:index2]list[index1:index2]tulpe[index1:index2]
-append(),- extend(),- insert()元组不可改变,无法增加
str.strip(),str.lstrip(),str.rstrip(),del()- pop(),- remove(),- del(),- clear()只能用- del()全部删除,不能删除某个元素
replacelist[index]=value,list[index1:index2]=value元组不可更改
find()、index()、rindex()、索引index()、索引index()、索引
遍历元素、索引、枚举元素、索引、枚举元素、索引、枚举
### Python 中元组列表区别与共同点 #### 区别 1. **可变性** 列表是可变的数据结构,这意味着其内容可以被修改、添加或删除。例如,可以通过索引来更改列表中的元素[^1]。相反,元组是一种不可变数据结构,一旦创建便无法改变其内容。尝试修改元组的某个元素会引发 `TypeError` 错误。 2. **用途上的差异** 由于元组的不可变特性,它通常用于存储不需要频繁改动的数据集合。此外,许多内置函数方法返回的结果是以元组形式呈现的,这使得元组成为一种重要的中间表示形式[^4]。而列表则更适合动态场景下的数据操作,比如增删改查等复杂需求。 3. **性能表现** 元组在内存占用方面更高效,并且访问速度也比列表稍快一些。这是因为元组的设计初衷就是提供轻量级、固定不变的数据容器[^4]。对于只需要读取而不需更新的情况来说,优先考虑使用元组能够提升程序效率。 4. **作为字典键的可能性** 只有不可变对象才能充当字典里的键值;因此,虽然不能把整个列表当作字典的一个键来用,但如果该列表内部只含有基本数值型或其他同样具备hashable属性的小单元,则可通过将其转化为tuple后再设为dict key的方式实现间接利用。 #### 共同点 1. **支持相同的操作符** 不管是列表还是元组都允许执行诸如切片(slice)、迭代(iteration)以及长度查询(len())之类的常规操作[^2]。 2. **容纳多种类型元素的能力** 它们都能保存不同类型的数据项——无论是整数(integer),浮点数(float),字符串(string),甚至是其他复合类型的变量(如另一个列表或者嵌套元组)[^2]. 3. **保持插入顺序** 数组一样,无论何时何地向其中追加新成员都不会打乱已有排列次序,即始终维持最初定义时所赋予的位置关系[^3]. ```python # 示例代码展示两者区别与共通之处 str_data = 'az' bytes_data = b'123' tuple_data = (1, 2) list_data1 = list(str_data) list_data2 = list(bytes_data) list_data3 = list(tuple_data) print(list_data1, type(list_data1)) # ['a', 'z'] <class 'list'> print(list_data2, type(list_data2)) # [49, 50, 51] <class 'list'> print(list_data3, type(list_data3)) # [1, 2] <class 'list'> try: tuple_data[0] = "change" except TypeError as e: print(e) # 'tuple' object does not support item assignment list_example = ["apple", "banana"] list_example.append("cherry") print(list_example) # Output: ['apple', 'banana', 'cherry'] ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值