元组(tuple)

  元组其实跟列表差不多,也是存一组数,与列表相比,元组一旦创建,便不能再修改,所以又叫只读列表。

 语法:

 names = ("Wuchunwei","Yangmengmeng","Lvs")

#元组只有2个方法,一个是count,一个是index
>>> tuple1 = (,,'',,'')
>>> print (tuple1[]) >>> print (tuple1[-]) >>> print (tuple1[:]) #元组也可以进行切片操作。对元组切片可以得到新的元组。
(, '')
>>>

枚举

>>> for i,v in enumerate(range(,)):
... print(i,v)
... >>>

应用举例:

#代码
product_list = [
['IPhone',],
['ofo',],
['MackBook',], ] for index,i in enumerate(product_list):
print("%s,\t%s\t%s" %(index,i[],i[])) #运行结果
C:\Python35\python.exe D:/Python代码目录/day2/list.py
, IPhone
, ofo
, MackBook Process finished with exit code

字符串操作(str)

特性:不可修改

常用操作:

>>> name = 'chunwei wu'
>>> name.capitalize() #首字母大写
'Chunwei wu'
>>> >>> name = 'CHUNWEI WU'
>>> name.casefold() #全部大写变小写
'chunwei wu'
>>> >>> name
'CHUNWEI WU'
>>> name.center(20,"-") #输出20个字符,不足的以"-"补全
'-----CHUNWEI WU-----'
>>> >>> name
'CHUNWEI WU'
>>> name.count('U') #统计(默认是统计所有,可以指定统计范围)
2
>>> name.count('U',0,10)
2
>>> name.count('U',0,9)
1
>>> >>> name
'CHUNWEI WU'
>>> name.endswith("Wu") #以什么结尾,匹配到则为真(返回True),匹配不到则为假(返回False)
False
>>> name.endswith("WU")
True
>>> name.endswith("CHUNWEI")
False
>>> >>> "Chunwei\tWu".expandtabs(10) #将\t转换成多长的空格
'Chunwei Wu'
>>> "Chunwei\tWu".expandtabs(15)
'Chunwei Wu' >>> name
'CHUNWEI WU'
>>> name.find('Wu') #查找Wu,找到返回其索引,找不到返回-1
-1
>>> name.find('CHUNWEI')
0 #format格式的三种赋值方式
>>> msg = "my name is {},and age is {}"
>>> msg.format("chunweiwu",23)
'my name is chunweiwu,and age is 23'
>>>
>>> msg = "my name is {0},and age is {1}"
>>> msg.format("chunweiwu",23)
'my name is chunweiwu,and age is 23'
>>>
>>> msg = "my name is {name},and age is {age}"
>>> msg.format(age=23,name="chunweiwu") #无需位置对齐
'my name is chunweiwu,and age is 23'
>>> #format_map格式赋值
>> > msg = "my name is {name}, and age is {age}"
>> > msg.format_map({'name': 'chunweiwu', 'age': 23})
'my name is chunweiwu, and age is 23' >>> "abCDe".isalpha() #是不是字母,是则为True,不是则为False
True
>>> "123e".isalpha()
False
>>> >>> "".isdigit() #是不是正整数,是返回True,否返回False
True
>>> "".isdigit()
True
>>> "-5".isdigit()
False
>>> >>> "al_ex".isidentifier() #是不是一个合法的变量名,是返回True,否返回False
True
>>> "2x".isidentifier()
False
>>> >>> "wei".islower() #是不是小写(全部)
True
>>> "weiG".islower()
False
>>> >>> "3.1".isnumeric() #是不是数字(不带小数点),是为True,否为False
False
>>> "".isnumeric()
True
>>> "31.45".isnumeric()
False
>>> >>> "weiG".isupper() #是不是大写(全部)
False
>>> "WeiG".isupper()
False
>>> "WG".isupper()
True
>>> >>> print("My Name Is Wu".istitle()) #是不是首字母都是大写
True
>>> print("My Name Is su".istitle())
False
>>> >>> ",".join("hello") #以指定的字符连接字符
'h,e,l,l,o'
>>> "-".join("wuchunwei")
'w-u-c-h-u-n-w-e-i'
>>> "|".join(["hello","good","hi"])
'hello|good|hi'
>>> >>> "chunwei".ljust(15,'-') #以-符号右填充共15个字符
'chunwei--------'
>>> >>> "chunwei".rjust(15,'-') #以-符号左填充共15个字符
'--------chunwei'
>>> >>> "ChunWei".lower() #将大写变小写
'chunwei'
>>> "CHUNWEI".lower()
'chunwei'
>>> >>> " wu \n".rstrip() #去右空格
' wu'
>>> "\n wuchunwei \n".rstrip()
'\n wuchunwei'
>>> >>> "\n wu \n".lstrip() #去左空格
'wu \n'
>>> " \n wuchunwei ".lstrip()
'wuchunwei '
>>>

 >>> name="wuchunwei"
 >>> name.rstrip('i')#右边指定字符串
 'wuchunwe'
 >>> name.rstrip('ei')
 'wuchunw'
 >>> name.rstrip('wi')
 'wuchunwe'
 >>> name.lstrip('w') #去左边指定字符串
 'uchunwei'
 >>> name.lstrip('wi')
 'uchunwei'
 >>> name.lstrip('u')
 'wuchunwei'
>>>


#等位替换(加密解密)
>>> from_str = "!@#$%^&"
>>> to_str = "abcdefg"
>>> trans_table = str.maketrans(to_str,from_str)
>>> print("backup".translate(trans_table))
@!#kup
>>> >>> "hello world 666 good".partition("w") #以指定字符分割成3份(指定的字符不存在以空分割)
('hello ', 'w', 'orld 666 good')
>>> "hello world 666 good".partition("")
('hello world ', '', ' good')
>>> "hello world 666 good".partition("z")
('hello world 666 good', '', '')
>>> >>> "hello".replace("l","L") #以特定字符替换现有字符,可以设定替换次数(默认替换全部)
'heLLo'
>>> "hello".replace("h","HHH")
'HHHello'
>>> "hello".replace("l","L",1)
'heLlo'
>>> >>> "wu\n chun\nwei".splitlines() #以\n分隔
['wu', ' chun', 'wei']
>>> "\nwuchun\nwei".splitlines()
['', 'wuchun', 'wei'] >>> "\nwuchun\nwei".split("u") #以指定的字符分割(保留特殊字符)
['\nw', 'ch', 'n\nwei']
>>>
#计数器 
import collections
obj = collections.Counter('zzzfcsdvc,dasdwezzrggfdgeqwewewe')
print(obj)
""" 结果: C:\Python35\python.exe D:/Python代码目录/Python_codeing/caixing_codeing/day3/有序字典.py
Counter({'z': 5, 'e': 5, 'w': 4, 'd': 4, 'g': 3, 'f': 2, 's': 2, 'c': 2, 'r': 1, ',': 1, 'q': 1, 'v': 1, 'a': 1}) """

字典(dict)

字典是一种key-value的数据类型,使用就像上学时用的字典,可以通过笔划、字母来查对应页的详细内容

语法:

info = {
'stu1101': "Chunwei Wu",
'stu1102': "Mengmeng Yang",
'stu1103': "Qi Wei",
}

字典的特性:

1)dict是无序的
2)key必须是唯一的,so 天生去重

快速定义一个字典(fromkeys)

###实例代码:
dic1=dict.fromkeys('abc',) #分别以a、b、c为key,1为value为键值创建字典(去重)
print("dict1===>",dic1)
dic2=dic1.fromkeys('hello',)
print("dict2===>",dic2)
dic3=dict.fromkeys([,,],{'names':'weige','age':})
print("dict3===>",dic3) ###运行结果:
C:\Python35\python.exe D:/Python代码目录/day3/字典.py
dict1===> {'a': , 'b': , 'c': }
dict2===> {'l': , 'o': , 'e': , 'h': }
dict3===> {: {'age': , 'names': 'weige'}, : {'age': , 'names': 'weige'}, : {'age': , 'names': 'weige'}} Process finished with exit code

字典的常见操作:

===》增加
>>> info
{'stu1101': 'Chunwei Wu', 'stu1103': 'Qi Wei', 'stu1102': 'Mengmeng Yang'}
>>> info["stu1104"] = "吴春伟" #增加一个字典数值
>>> info
{'stu1101': 'Chunwei Wu', 'stu1103': 'Qi Wei', 'stu1104': '吴春伟', 'stu1102': 'Mengmeng Yang'} #字典是无序的
>>> ===》修改
>>> info
{'stu1101': 'Chunwei Wu', 'stu1103': 'Qi Wei', 'stu1104': '吴春伟', 'stu1102': 'Mengmeng Yang'}
>>> info['stu1104'] = "WUCHUNWEI" #修改(重新赋值)
>>> info
{'stu1101': 'Chunwei Wu', 'stu1103': 'Qi Wei', 'stu1104': 'WUCHUNWEI', 'stu1102': 'Mengmeng Yang'}
>>> ===》删除
>>> info
{'stu1101': 'Chunwei Wu', 'stu1103': 'Qi Wei', 'stu1104': 'WUCHUNWEI', 'stu1102': 'Mengmeng Yang'}
>>> info.pop("stu1104") #标准删除姿势(需要指定key键值)
'WUCHUNWEI'
>>> info
{'stu1101': 'Chunwei Wu', 'stu1103': 'Qi Wei', 'stu1102': 'Mengmeng Yang'}
>>>
>>> del info['stu1101'] #字典删除方式2
>>> info
{'stu1103': 'Qi Wei', 'stu1102': 'Mengmeng Yang'}
>>>
>>> info
{'stu1101': 'Nginx', 'stu1103': 'Qi Wei', 'stu1105': 'PHP', 'stu1104': 'Apache', 'stu1102': 'Mengmeng Yang'}
>>> info.popitem() #popitem随机删除
('stu1101', 'Nginx')
>>> info
{'stu1103': 'Qi Wei', 'stu1105': 'PHP', 'stu1104': 'Apache', 'stu1102': 'Mengmeng Yang'}
>>> info.popitem()
('stu1103', 'Qi Wei')
>>> info
{'stu1105': 'PHP', 'stu1104': 'Apache', 'stu1102': 'Mengmeng Yang'}
>>> info.popitem()
('stu1105', 'PHP')
>>> info
{'stu1104': 'Apache', 'stu1102': 'Mengmeng Yang'}
>>> ===》查找
>>> info
{'stu1104': 'Apache', 'stu1102': 'Mengmeng Yang'}
>>> "stu1102" in info #标准用法
True
>>> info.get("stu1102") #获取(查找)
'Mengmeng Yang'
>>> info["stu1102"] #第二种方法
'Mengmeng Yang'
>>>
>>> info.get("stu1108") #当查找一个不存在的字典key时:get方式为空不报错;第二种方式会报错
>>> info["stu1108"]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'stu1108'
>>> ===》更新
>>> info
{'stu1101': 'WeiGe', 'stu1102': 'Mengmeng Yang'}
>>> user = {1:'a',2:'b',"stu103":"吴春伟"}
>>> info.update(user)
>>> info
{'stu1101': 'WeiGe', 2: 'b', 1: 'a', 'stu103': '吴春伟', 'stu1102': 'Mengmeng Yang'}
>>> ===》其他用法操作
>>> info
{'stu1104': 'Apache', 'stu1102': 'Mengmeng Yang'}
>>> info.values() #获取字典的value值
dict_values(['Apache', 'Mengmeng Yang'])
>>>
>>> info.keys() #获取字典的key值
dict_keys(['stu1104', 'stu1102'])
>>> >>> info
{'stu1104': 'Apache', 'stu1102': 'Mengmeng Yang'}
>>> info.setdefault("stu1102","WeiGe") #当原key存在不做改变(当key不存在时,新增一对key:value)
'Mengmeng Yang'
>>> info
{'stu1104': 'Apache', 'stu1102': 'Mengmeng Yang'}
>>> info.setdefault("stu1101","WeiGe") #当key不存在时,新增一对key:value(当原key存在不修改)
'WeiGe'
>>> info
{'stu1101': 'WeiGe', 'stu1104': 'Apache', 'stu1102': 'Mengmeng Yang'}
>>> >>> info
{'stu1101': 'WeiGe', 2: 'b', 1: 'a', 'stu103': '吴春伟', 'stu1102': 'Mengmeng Yang'}
>>> info.items() #转换为列表
dict_items([('stu1101', 'WeiGe'), (2, 'b'), (1, 'a'), ('stu103', '吴春伟'), ('stu1102', 'Mengmeng Yang')])
>>>

两种取字典里的ke、value值得方式  (循环dict)

===》实例
user = {
"stu1101":"chunweiwu",
"stu1102": "Mengmeng Yang",
"stu1103": "Qi Wei",
"stu1104": "Helen",
} print("###方法1###")
for key in user:
print(key,user[key])
print("###方法2(会先把dict转为list,大数据量是不推荐使用)###")
for k,v in user.items():
print(k,v) ===》结果
C:\Python35\python.exe "D:/Python代码目录/day 1/dict.py"
###方法1###
stu1104 Helen
stu1102 Mengmeng Yang
stu1103 Qi Wei
stu1101 chunweiwu
###方法2(会先把dict转为list,大数据量是不推荐使用)###
stu1104 Helen
stu1102 Mengmeng Yang
stu1103 Qi Wei
stu1101 chunweiwu Process finished with exit code 0

深浅拷贝(copy|deepcopy)

import copy
###浅拷贝
copy.copy()
###深copy
copy.deepcopy() 实例:
dic1={'name':'weige','age':,'gfs':["MwngQi","Roses","Helly"]}
dic2=dic1
dic3=copy.copy(dic1) #字典里的浅copy就是copy模块里的copy
print(dic1)
print(dic2)
print(dic3)
结果:
C:\Python35\python.exe D:/Python代码目录/day3/字典.py
{'gfs': ['MwngQi', 'Roses', 'Helly'], 'name': 'weige', 'age': }
{'gfs': ['MwngQi', 'Roses', 'Helly'], 'name': 'weige', 'age': }
{'gfs': ['MwngQi', 'Roses', 'Helly'], 'name': 'weige', 'age': } Process finished with exit code
###代码###
info ={
'cpu':[80,],
'disk':[90,],
'mem':[85,]
}
print("befo===> ",info) print("======copy======")
info_c=copy.copy(info)
info_c['mem'][0]=100
print("befo===> ",info)
print("copy===> ",info_c) print("======deepcopy======")
info_dc=copy.deepcopy(info)
info_dc['cpu'][0]=50
print("befo===> ",info)
print("deepcopy===> ",info_dc) ###结果###
C:\Python35\python.exe D:/Python代码目录/day3/字典.py
befo===> {'mem': [85], 'cpu': [80], 'disk': [90]}
======copy======
befo===> {'mem': [100], 'cpu': [80], 'disk': [90]}
copy===> {'mem': [100], 'cpu': [80], 'disk': [90]}
======deepcopy======
befo===> {'mem': [100], 'cpu': [80], 'disk': [90]}
deepcopy===> {'mem': [100], 'cpu': [50], 'disk': [90]} Process finished with exit code 0

硬件参数copy与deepcopy事例

集合(set)

  集合是一个无序的、不重复的数据组合,主要作用如下:

  1)去重:把一个列表变成集合,就自动去重了

  2)关系测试:测试两组数据之前的交集、差集、并集等测试

集合的常见内置方法

###交集:取共有部分
stu_1={'hello','weige','monkey','kitty'}
stu_2={'weige','mengqi','tiger'}
print(stu_1&stu_2)
print(stu_1.intersection(stu_2)) C:\Python35\python.exe D:/Python代码目录/day3/集合.py
{'weige'}
{'weige'} Process finished with exit code ###并集:取包含两个集合所有的元素
num_1={,,,,}
num_2={,}
##并集:取包含所有的
print(num_1|num_2)
print(num_1.union(num_2)) C:\Python35\python.exe D:/Python代码目录/day3/集合.py
{, , , , }
{, , , , } Process finished with exit code ###差集:用集合1中减去集合2中有的,剩余的就为集合1与集合2的差集
num_1={,,,,}
num_2={,}
print(num_1-num_2)
print(num_1.difference(num_2))
print(num_2-num_1) #没有这为空 C:\Python35\python.exe D:/Python代码目录/day3/集合.py
{, , }
{, , }
set() Process finished with exit code ###对称差集:集合1与集合2所有的减去两者共有的剩下所有
num_1={,,,,}
num_2={,}
print(num_1^num_2)
print(num_1.symmetric_difference(num_2)) C:\Python35\python.exe D:/Python代码目录/day3/集合.py
{, , }
{, , } Process finished with exit code ###子集:小于等于,返回布尔值;True和False
num_1={,,,,}
num_2={,}
print(num_1<=num_2)
print(num_1.issubset(num_2))
print(num_2.issubset(num_1)) C:\Python35\python.exe D:/Python代码目录/day3/集合.py
False
False
True Process finished with exit code ###父集:大于等于
num_1={,,,,}
num_2={,}
print(num_1>=num_2)
print(num_1.issuperset(num_2))
print(num_2.issuperset(num_1)) C:\Python35\python.exe D:/Python代码目录/day3/集合.py
True
True
False Process finished with exit code

集合其他内置方法

###更新update
s1={1,2,3} s1.update('e')
s1.update((1,2,3,4))
s2={'h','e','l'}
s1.update('hello')
print(s1) C:\Python35\python.exe D:/Python代码目录/day3/集合.py
{'h', 1, 2, 3, 4, 'o', 'l', 'e'} Process finished with exit code 0 ###增加add
s1={1,2,3}
s1.add('hello')
print(s1) C:\Python35\python.exe D:/Python代码目录/day3/集合.py
{1, 2, 3, 'hello'} Process finished with exit code 0 ###随机删除pop
s1={1,2,3}
s1.pop()
print(s1) C:\Python35\python.exe D:/Python代码目录/day3/集合.py
{2, 3} Process finished with exit code 0 ###指定删除(元素不存在则报错)
s1={1,2,3}
s1.remove('w') C:\Python35\python.exe D:/Python代码目录/day3/集合.py
Traceback (most recent call last):
File "D:/Python代码目录/day3/集合.py", line 88, in <module>
s1.remove('w')
KeyError: 'w' Process finished with exit code 1 ###删除元素不存在的集合不报错的删除方式
s1={1,2,3}
print(s1.discard('a')) C:\Python35\python.exe D:/Python代码目录/day3/集合.py
None Process finished with exit code 0 ###差集更新(s1=s1-s2)
s1={1,2,5,'a','c'}
s2={1,2}
s1.difference_update(s2)
print(s1) C:\Python35\python.exe D:/Python代码目录/day3/集合.py
{5, 'a', 'c'} Process finished with exit code 0

Python之旅Day2 元组 字符串 字典 集合的更多相关文章

  1. Python中列表,元组,字典,集合的区别

    参考文档https://blog.csdn.net/Yeoman92/article/details/56289287 理解Python中列表,元组,字典,集合的区别 列表,元组,字典,集合的区别是p ...

  2. Python基础-列表、元组、字典、字符串

    Python基础-列表.元组.字典.字符串   多维数组 nums1 = [1,2,3] #一维数组 nums2 = [1,2,3,[4,56]] #二维数组 nums3 = [1,2,3,4,['a ...

  3. python学习笔记(一)元组,序列,字典

    python学习笔记(一)元组,序列,字典

  4. Python中列表、元组、字典、集合与字符串,相关函数,持续更新中……

    本篇博客为博主第一次学 Python 所做的笔记(希望读者能够少点浮躁,认真阅读,平心静气学习!) 补充: 列表.元组和字符串共同属性: 属于有序序列,其中的元素有严格的先后顺序 都支持双向索引,索引 ...

  5. Python 全栈开发二 python基础 字符串 字典 集合

    一.字符串 1,在python中,字符串是最为常见的数据类型,一般情况下用引号来创建字符串. >>ch = "wallace" >>ch1 = 'walla ...

  6. python基础语法3 元组,字典,集合

    元组: ========================元组基本方法===========================用途:存储多个不同类型的值定义方式:用过小括号存储数据,数据与数据之间通过逗号 ...

  7. python数据类型详解及列表字典集合推导式详解

    一.运算符 Python语言支持以下类型的运算符: 算术运算符 如: #!/usr/bin/env python # -*- coding:utf-8 -*- a = 5 b = 6 print(a ...

  8. Day 15 python 之 列表、元组、字典

    基础: #! /usr/bin/env python # -*- coding: utf-8 -*- # __author__ = "DaChao" # Date: 2017/6/ ...

  9. Python学习---列表,元组,字典

    ### 列表 list = [1,2,3,4,5,6] list.append(7) print(list) ===>>> [1, 2, 3, 4, 5, 6, 7] list[2] ...

随机推荐

  1. maven的依赖管理详细

    依赖管理 Jar包的管理 需求:整合struts2   页面上传一个客户id 跳转页面 1 添加依赖: 打开maven仓库的视图: 2 重建索引 1. 创建maven项目(同上) 2. 跳过骨架(同上 ...

  2. 【Noip模拟 20160929】划区灌溉

    题目描述 约翰的奶牛们发现山脊上的草特别美味.为了维持草的生长,约翰打算安装若干喷灌器. 为简化问题,山脊可以看成一维的数轴,长为L(1≤L≤1,000,000)L(1≤L≤1,000,000),而且 ...

  3. [C语言]进阶|结构类型: 枚举, 结构, 类型定义

    --------------------------------------------------------------------- 枚举: // main.c #include <std ...

  4. 从performance_schema中查看MySQL活动Session的详细执行信息

    本文出处:http://www.cnblogs.com/wy123/p/7851294.html 在做数据库的异常诊断的时候,之前在SQL Server上的时候,最主要的参考信息之一就是去看当前的活动 ...

  5. mui之上拉刷新和mui-content结合解决ios上拉不回弹的bug

    打电话.发短信 https://blog.csdn.net/itguangit/article/details/78210770

  6. vue 关键词模糊查询

    页面html,绑定的列表数据为datas,关键词为 select_words,如下图 其中d.accounts和d.roleName是需要进行搜索的字段,也可以进行大小写都可以

  7. window.location.href 页面不跳转解决

    function login() { var userid = $("#username").val(); var userpwd = $("#pwd").va ...

  8. Fedora 25 安装 Bugzilla

    最近领导要我们装一个Bugzulla,虽然我们项目已经有了JIRA(我就呵呵),不过我还是找些资料安装了,在此备忘. Bugzilla 是一个开源的缺陷跟踪系统(Bug-Tracking System ...

  9. Cocos2dx开发之屏幕适配

    由于各种智能手机的屏幕大小都不一致,会出现同一张图片资源在不同的设备分辨率下显示不一样的问题.为避免这样的情况,需要Cocos引擎能提供多分辨率的支持,也就是说要求实现这样的效果 — 开发者不需要考虑 ...

  10. python小练习1:设计这样一个函数,在桌面的文件夹上创建10个文本,以数字给它们命名。

    python小练习1:设计这样一个函数,在桌面的文件夹上创建10个文本,以数字给它们命名. 使用for循环即可实现: for name in range(1,11): desktop_path='C: ...