标签:edit license recent 字符 bbb copyright oca type ast
元组
python的元组与列表类似,不同之处在于元组的元素不能修改,元组使用小括号,列表使用方括号,元组声明后,长度就固定了。
In [1]: my_strs=("a","bbb",‘ccc‘) In [2]: my_strs Out[2]: (‘a‘, ‘bbb‘, ‘ccc‘) In [3]: my_strs[0] Out[3]: ‘a‘ In [4]: my_strs[-1] Out[4]: ‘ccc‘ In [5]: my_strs[3] --------------------------------------------------------------------------- IndexError Traceback (most recent call last) <ipython-input-5-978c5894f0f0> in <module>() ----> 1 my_strs[3] IndexError: tuple index out of range In [6]: my_strs[0]="aaa" --------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-6-4152d9453e33> in <module>() ----> 1 my_strs[0]="aaa" TypeError: ‘tuple‘ object does not support item assignment In [8]: len(my_strs) #定义好了元组,长度就固定了。 Out[8]: 3 In [11]: name=[1,2,3,4] In [12]: my_tuple=(100,200,name) #元组中的元素为列表 In [13]: my_tuple Out[13]: (100, 200, [1, 2, 3, 4]) In [15]: my_tuple[2] Out[15]: [1, 2, 3, 4] In [16]: my_tuple[2][0]=100 #元组中若包含列表,列表本身是可以修改的。 In [17]: my_tuple Out[17]: (100, 200, [100, 2, 3, 4])
元组没有增删改,只有查操作内置函数index, count ,in, not in
In [17]: my_tuple Out[17]: (100, 200, [100, 2, 3, 4]) In [19]: my_tuple.index(100) Out[19]: 0 In [20]: my_tuple.count(100) Out[20]: 1 In [21]: 100 in my_tuple Out[21]: True In [22]: 100 not in my_tuple Out[22]: False In [23]:
实现列表循环输出
#用for循环实现 In [23]: for i in name: ...: print(i) ...: 100 2 3 4 In [24]: for i in my_tuple: ...: print(i) ...: ...: 100 200 [100, 2, 3, 4] In [25]: range(1,100) Out[25]: range(1, 100) In [26]: for i in range(1,10): ...: print(i) ...: 1 2 3 4 5 6 7 8 9 In [27]: c=range(1,10) In [28]: c Out[28]: range(1, 10) #用while实现 In [29]: i=0 In [30]: while i<len(name): ...: print(name[i]) ...: i+=1 ...: 100 2 3 4
range的优化:
[root@localhost ~]# python Python 2.6.6 (r266:84292, Aug 18 2016, 15:13:37) [GCC 4.4.7 20120313 (Red Hat 4.4.7-17)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> c=range(1,10) >>> c [1, 2, 3, 4, 5, 6, 7, 8, 9] #python2中直接返回列表 >>> exit() [root@localhost ~]# python3 Python 3.6.5 (default, May 1 2018, 16:43:30) [GCC 4.4.7 20120313 (Red Hat 4.4.7-18)] on linux Type "help", "copyright", "credits" or "license" for more information. >>> c=range(1,10) #懒加载,只有使用访问里面的元素时才会得到一个列表,节省内存空间。 python3优化后的处理。 >>> c range(1, 10)
可变类型和不可变类型(值是可变还是不可变)
不可变类型:数值、字符串、元组...
可变类型:列表
说明:
python中的整数不限制大小,数值占用的字节1、2、4、8...由于整数占用的字节大小是不同的,因此不能更改。
字符串定义好之后不会改变,字符串的操作是生成新的字符串,原本的字符串没有改变。
In [31]: a=1 #变量a指向数值为1的内存空间; In [32]: a Out[32]: 1 In [33]: a=2 #变量a指向数值为2的内存空间 In [34]: a #改变的是a的引用指向,并非将原本1的内存的值修改为2,当内存中的值没有被任何一个变量引用的时候,内存会自动回收 Out[34]: 2
标签:edit license recent 字符 bbb copyright oca type ast
原文地址:https://www.cnblogs.com/zhaoyujiao/p/9010873.html