Python学习(5)基础

Python基础学习

时间2020-2-16

2、元组tuple:

类似于java中的数组
指有一定相关性的元素的集合

1. 定义元组:

a = (1, '2', 'a', 3.14, 1, 1, 1, 1, 1,)
print(a)

#(1, '2', 'a', 3.14, 1, 1, 1, 1, 1)

注:若元组中只有一个值值后要加上英文状态下的, ,否则括号会被视为运算符

a = (1)
print(type(a))
b = (1,)
print(type(b))

#<class 'int'>
<class 'tuple'>

可以看到a并不是tuple类型

2.不能动态追加元素:
每一个单独的项称为一个元组
元组的值不可改变

a = (1, '2', 'a', 3.14, 1, 1, 1, 1, 1,)
a[0] = 10
print(a)
#TypeError: 'tuple' object does not support item assignment


b = (1, 23, 4, 325, 2346, 123, 123)
print(a+b)
#(1, '2', 'a', 3.14, 1, 1, 1, 1, 1, 1, 23, 4, 325, 2346, 123, 123)

a+b的操作并不是将b追加在a的后面由下地址空间可知三个值在内存地址中的位置不同

print(id(a))
print(id(b))
print(id(a+b))

#2759592478664
#2759590476824
#2759592489208

实际的操作是:
a开辟属于自己的内存空间
b开辟属于自己的内存空间
a+b开辟新的内存空间按先a后b的顺序将值放入新的内存空间里

3.切片:
与字符串切片相同
见:Python学习(4)基础

# print(a[0])
# print(a[1:4])
# print(a[::2])
# print(a[::-1])

4.对元组进行操作:
(1)复制

a1 = copy.copy(a)
print(a)
print(a1)
#(1, '2', 'a', 3.14, 1, 1, 1, 1, 1)
#(1, '2', 'a', 3.14, 1, 1, 1, 1, 1)

print(id(a))
print(id(a1))
#2243302361032
#2243302361032

可以看到a1和a的内存地址相同,所以这是个浅复制,只复制了值的内存地址;深复制则是要改变内存地址
—————————————————————我是分割线————————————————————
浅复制 :只复制了内存地址
深复制:改变内存空间

5.元组的内置函数及方法:

# print(len(a))
# print(a.count(1))  # 统计个数

# print(a.index(1))  # 第一次出现下标

# print(sorted(b))  # 排序
# reverse -- 排序规则,reverse = True 降序 , reverse = False 升序(默认)。
发布了7 篇原创文章 · 获赞 1 · 访问量 363

猜你喜欢

转载自blog.csdn.net/weixin_43464797/article/details/104345050