欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python学习(5)基础

程序员文章站 2022-07-14 23:11:05
...

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 升序(默认)。
相关标签: python