码迷,mamicode.com
首页 > 编程语言 > 详细

python 基础

时间:2016-05-08 13:19:53      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:

基本类型的补充

str --> 一次性创建的,不能被修改,强制修改就会在创建一个而之前的也会在

list -->允许重复的集合 修改  记录 链表,下一个元素的位置,上一个元素的位置

tuplt --> 允许重复的集合  修改

dict---> 允许重复的集合  修改

set -->不允许重复的集合,修改  也是不允许重复的列表

set 集合

创建方式有两种 s = set() s = {,,,,}

s1 = {11,44,55,66,77}
b1 = {11,22,33,44,55,789}
s1.add(88)   #添加某一个元素 不能直接打印
print(s1)
结果
{66, 11, 44, 77, 55, 88}

s1.clear()   #清空列表 不能清除一个
print(s1)
结果
set()

i = s1.difference (b1)  #找s1中存在 b1中不存在的元素,并赋值给i
print(i)
结果‘
{66, 77}

s1.difference_update(b1)  #找某一个存在,某一个不存在元素更新自己的
print(s1)
结果
{66, 77}

i = s1.discard(11)
print(s1)   #移除指定元素  没有的也不存在保错
结果
{66, 44, 77, 55}

i = s1.remove(11)  #移除指定元素,不存在的报错
print(b1)
结果
{33, 11, 44, 789, 22, 55}

i = s1.intersection(b1)   #返回两个集合的交集作为一套新的
print(s1)
结果
{66, 11, 44, 77, 55}

i = s1.isdisjoint(b1)  #判断有没有交集,有交集就是False,没有交集就是Ture
print(i)
结果
False

i = s1.issubset(b1)  #判断是不是子序列
print(i)
结果
False

i = s1.issuperset(b1)  #判断是不是父子列
print(i)
结果
False

i = s1.pop()   #删除某一个元素 因为是无序的所以是随机
print(i)
结果
66
i = s1.symmetric_difference(b1)
print(i)    #对称交集并更新到s1中
结果
{33, 789, 22, 77}

i = s1.union(b1)
print(i)   #并集 合并到一个新的集合
结果
{33, 11, 44, 77, 789, 22, 55}

i = s1.update("nihao")
print(i)  更新新元素
结果
{321, 66, 11, 44, 77, 55, 123}

 

 

三目运算 三元运算

name= 值1 if 1 == 1 sles 值2 如果条件成立就把值1赋给变量 如果条件不成立就把值2 赋给变量

q = ‘erzi‘ if 1==1 else ‘sunzi‘
    print(q)
q = ‘xin‘ if 1 !=1 else ‘pi‘
D:\python3.5\python.exe D:/untitled/.idea/sanyuan.py erzi pi Process finished with exit code 0

 

深浅拷贝。 深浅拷贝有copy模块。

导入模块:import copy

浅拷贝:copy.copy

深拷贝:deepcopy

字面理解:浅拷贝指仅仅拷贝数据集合的第一层数据,深拷贝指拷贝数据集合的所有层。

所以对于只有一层的数据集合来说深浅拷贝的意义是一样的,比如字符串,数字。

技术分享
import  copy    首先要先导入模块
n1 = 133
n2 = n1            赋值 
print(id(n2))
n2 = copy.copy(n1)    浅拷贝
print(id(n2))
n3 = copy.deepcopy(n1)    深拷贝
print(id(n2))

技术分享

 

1赋值,只是创建一个变量,该变量指向原来内存地址,如:

n1 = {"k1":"wu", "k2": 123, "k3": ["alex", 456]}

n2 = n1

print(id(n2))

D:\python3.5\python.exe D:/untitled/q1.py

7699752 7699752

Process finished with exit code 0

对于字典、元祖、列表 而言,进行赋值、浅拷贝和深拷贝时,其内存地址的变化是不同的。

浅拷贝

n1 = {"k1":"wu", "k2": 123, "k3": ["alex", 456]}
n2 = n1
n3 = copy.copy(n1)
print(id(n1),id(n2))
结果
15367464 15367464

深拷贝,,,

n1 = (ewq,123)
n2 = copy.deepcopy(n1)
print(id(n1),id(n2))

D:\python3.5\python.exe D:/untitled/q1.py
15470544 15470544

Process finished with exit code 0

 




 

 

 

 


 

python 基础

标签:

原文地址:http://www.cnblogs.com/guokaixin/p/5469633.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!