一、字符串
s = 'python'
s1 = 'python' + 'learn' #相加其实就是简单拼接
s2 = 'python' * 5 #相乘其实就是复制自己多少次,再拼接在一起
字符串切片:
a= 'abcdefg'
print(a[0]) # 索引即下标,就是字符串组成的元素从第一个开始,初始索引为0以此类推。
print(a[0:]) #默认到最后
print(a[0:-1]) #-1就是最后一个
print(a[0:5:2]) #加步长
print(a[5:0:-2]) #反向加步长 print(s.capitalize()) #首字母大写
print(s.swapcase()) #大小写翻转
print(s.title()) #每个单词的首字母大写
print('learn'.center(20,'*')) #居中,总长度,空白处填充
print('learnnnn'.count('n',0,6)) #计算字符串中某元素出现的个数,可切片。
print('pyt\t12345ho\tn'.expandtabs()) #补全 (tab -> 8个字符) # pyt 12345ho n
print('python'.find("pyt",1,6)) #返回的找到的元素的索引,如果找不到返回-1
print('python'.index("pyt",1,6)) #返回的找到的元素的索引,找不到报错。
#str <---转---> list
print(''.join({'','',''})) #""中是什么,就以什么作为拼接符,将参数中所有的str元素合并为一个新的字符串
print('py t,hon'.split()) #以什么分割,最终形成一个列表此列表不含有这个分割的元素。默认空格。
print('py t.h.on'.rsplit('.',1)) #从右往左,取一个分割符 #['py t.h', 'on']
print(' python* '.strip()) #默认去掉两端的空格。 #python*
print('* *python*'.rstrip('*')) #去掉字符串右边的空格'*' #* *python
print('* *python*'.lstrip('*')) #去掉字符串左边的空格'*' # *python*
print('abcbc'.replace('bc','SB',1)) #替换,且替换一处 #aSBbc print('abc123'.isalnum()) #字符串由字母或数字组成
print('abc123'.isalpha()) #字符串只由字母组成
print('abc123'.isdigit()) #字符串只由数字组成 # S.format的用法
res1='{} {} {}'.format('a',18,'male')
res2='{1} {0} {1}'.format('a',18,'male')
res3='{name} {age} {sex}'.format(sex='male',name='a',age=18)
print(res1,'\n',res2,'\n',res3) print('{:-^50}\n{}\n'.format('欢迎','>>>返回请输入 b ,退出请输入 q'))
# print('{name}今年{age}'.format(name='ming',age=18)) #通过关键字
# grade = {'name' : 'ming', 'age': '18'}
# print('{name}今年{age}'.format(**grade)) #通过关键字,可用字典当关键字传入值时,在字典前加**即可
# print('{0}今年{1}'.format('ming','18'))
# 填充和对齐^<>分别表示居中、左对齐、右对齐,后面带宽度
# print('{:^14}'.format('ming'))
# print('{:>14}'.format('ming'))
# print('{:<14}'.format('ming'))
# print('{:*<14}'.format('ming'))
# print('{:&>14}'.format('ming'))
二、元组tuple
元组被称为只读列表,即数据可以被查询,但不能被修改,所以,字符串的切片操作同样适用于元组。
例:tup1=(1,2,3) tup2=("a","b","c")
tup3=(1,2,[],{}) #tup3中的[],{}可修改,因为tuple存的是list和dict的内存地址,用id()查
注:如果元组里面只有一个元素切不加“,”,那么元素是什么类型,就是什么类型。
三、列表list:
li = [1,'a','b',2,3,'a']
# li.insert(0,55) #按照索引去增加
# li.append('aaa') #增加到最后
# li.append([1,2,3]) #增加到最后
# li.extend([1,2,3]) #迭代添加 # l1 = li.pop(1) #按照位置去删除,有返回值
# del li[1:3] #按照位置去删除,也可切片,删除没有返回值。
# li.remove('a') #按照元素去删除
# li.clear() #清空列表 # li[1] = 'dfasdfas' #改,对某个元素直接赋值
# li[1:3] = ['a','b'] #对切片范围赋可迭代对象,将迭代值插入到列表(在选定范围处,有多少插多少,原索引往后移,被选范围将不复存在) # 查 #切片查,或者循环查
# print(li.count("a")) #统计某个元素在列表中出现的次数
# print(li.index("a")) #从列表中找出某个值第一个匹配项的索引位置,没有会报错 # li.sort() #方法用于在原位置对列表进行排序。str与int并存会报错
# li.reverse() #方法将列表中的元素反向存放。 深浅copy:
L1 = [1,2,3]
L2 = L1 # id(L1)=id(L2) #指向同一个内存地址,修改L1,L2 也会变
L3 = L1[:] # id(L1)!=id(L3) #切片赋值给L3,新开辟内存,互不干扰 L = ['a']
L1 = [1,2,L] #L1的第三个元素是L的内存地址
L4 = L1[:] #切片只是复制一层元素给L4,复制L的地址给L4,不复制L指向的值
L1[-1].append('b') #L1[2]与L4[2]都指向L,所以L1[2] == L4[2]
import copy
L5 = copy.deepcopy(L1) #对于深copy来说,两个是完全独立的,改变任意一个的任何元素(无论多少层),另一个绝对不改变。
四、字典dict:
#键唯一,可哈希。
# dic = {"name":"A","age":18,"sex":"male"}
# dic1 = {"name":"B","weight":100}
# dic1.setdefault('weight') # 有键值对,不做任何改变,没有才添加。# dic1.setdefault('weight',100) # value1 = dic["name"] # 没有会报错
# value2 = dic.get("djffdsafg","默认返回值") # 若没有可以返回设定的返回值 # dic['k']='v' # 添加
# print(dic1.pop('age')) # 有返回值,按键删除
# dic2.update(dic) # 将dic所有的键值对覆盖添加(相同的覆盖,没有的添加)到dic2中 # item = dic.items()
# keys = dic.keys()
# values = dic.values()
# dic_clear = dic.clear() # 清空字典 #字典的循环
# for key in dic: #key为键
# for item in dic.items(): #item = ('name', 'A')
# for key,value in dic.items(): #key,value = 'name', 'A'
五、enumerate
#枚举,对于一个可迭代的(iterable)/可遍历的对象(如列表、字符串),
#enumerate将其组成一个索引序列,利用它可以同时获得索引和值。
>>>s = enumerate([1,2,3,4,5,6])
>>>s.__next__()
>>>(0, 1)
# for i in enumerate(li):
# for index,name in enumerate(li,2): # 起始位置默认是0,可更改
六、range
#指定范围,生成指定数字。
#1.默认是从小到大 #2.范围是从小到大,步长需为正 #3.范围是从大小大,步长需为负
#不满足这三点只是空列表[]
# for i in range(1,10):
# for i in range(1,10,2): # 步长 # 范围是从小到大,步长需为正
# for i in range(10,1,-2): # 反向步长 # 范围是从大小大,步长需为负
七、集合set:
集合是无序的,不重复的数据集合,它里面的元素是可哈希的(不可变类型),但是集合本身是不可哈希(所以集合做不了字典的键)的。以下是集合最重要的两点:
  去重,把一个列表变成集合,就自动去重了。
  关系测试,测试两组数据间的交集、差集、并集等关系。 set1 = set({1,2,'hobby'})
set2 = {1,2,'hobby'}
print(set1,set2) # {1, 2, 'hobby'} {1, 2, 'hobby'} set1.add('女神')
set1.update([1,2,3]) #update:迭代添加,不重复 set1.remove(1) # 删除一个元素
set1.pop() # 随机删除一个元素
set1.clear() # 清空集合
del set1 # 删除集合 set1 & set2 #交集。(& 或者 intersection)
set1 | set2 #并集。(| 或者 union)
set1 - set2 #差集。(- 或者 difference)
set1 ^ set2 #反交集。 (^ 或者 symmetric_difference)
set1 < set2或set1.issubset(set2) # set1是set2子集。bool值
set2 > set1或set2.issuperset(set1) # set2是set1超集。bool值 #列表去重
# 1i=[1,2,33,33,2,1,4,5,6,6]
# set1=set(1i)
# 1i=list(set1) #frozenset不可变集合,让集合变成不可变类型(不可添加删除)。
s = frozenset('www')
print(s,type(s))
# frozenset({'w'}) <class 'frozenset'>

python基础学习 str,list,dict,set,range,enumerate的更多相关文章

  1. Python 基础学习 总结篇

    Python 基础学习总结 先附上所有的章节: Python学习(一)安装.环境配置及IDE推荐 Python学习(二)Python 简介 Python学习(三)流程控制 Python学习(四)数据结 ...

  2. Python基础学习五

    Python基础学习五 迭代 for x in 变量: 其中变量可以是字符串.列表.字典.集合. 当迭代字典时,通过字典的内置函数value()可以迭代出值:通过字典的内置函数items()可以迭代出 ...

  3. Day1 Python基础学习

    一.编程语言分类 1.简介 机器语言:站在计算机的角度,说计算机能听懂的语言,那就是直接用二进制编程,直接操作硬件 汇编语言:站在计算机的角度,简写的英文标识符取代二进制去编写程序,本质仍然是直接操作 ...

  4. 0003.5-20180422-自动化第四章-python基础学习笔记--脚本

    0003.5-20180422-自动化第四章-python基础学习笔记--脚本 1-shopping """ v = [ {"name": " ...

  5. Day1 Python基础学习——概述、基本数据类型、流程控制

    一.Python基础学习 一.编程语言分类 1.简介 机器语言:站在计算机的角度,说计算机能听懂的语言,那就是直接用二进制编程,直接操作硬件 汇编语言:站在计算机的角度,简写的英文标识符取代二进制去编 ...

  6. (一)python基础学习

    根据廖雪峰老师的python教程写一些学习总结! Python基础学习 1.使用list和tuple (1)list Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时 ...

  7. python基础学习(起步)

    目录 python基础学习(起步) 变量 常量 变量的内存管理 python垃圾回收机制 变量的其他赋值方式 今日编程小题 本人能力有限,若有偏颇之处请读者大大不吝赐教! 祝大家每天都在成长! pyt ...

  8. Python基础学习三

    Python基础学习三 1.列表与元组 len()函数:可以获取列表的元素个数. append()函数:用于在列表的最后添加元素. sort()函数:用于排序元素 insert()函数:用于在指定位置 ...

  9. Python学习--21天Python基础学习之旅(Day01、Day02)

    21天的python基础学习,使用<Python从入门到实践>,并且需要手敲书中的code,以下为整个学习过程的记录. Day01: 安装python时要选择复选框 Add Python ...

随机推荐

  1. 洛谷 P1969 积木大赛 —— 水题

    题目:https://www.luogu.org/problemnew/show/P1969 看每个高度和前面的关系即可. 代码如下: #include<iostream> #includ ...

  2. bzoj3196 二逼平衡树——线段树套平衡树

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3196 人生中第一棵树套树! 写了一个晚上,成功卡时 9000ms+ 过了! 很要注意数组的大 ...

  3. jquery easyui-datagrid手动增加删除重置行

    1.实现的效果图如下 2.界面: <div region="center">         <table id="tt">       ...

  4. Linux查找和替换目录下所有文件中字符串(转载)

    转自:http://rubyer.me/blog/1613/ 单个文件中查找替换很简单,就不说了.文件夹下所有文件中字符串的查找替换就要记忆了,最近部署几十台linux服务器,记录下总结. 查找文件夹 ...

  5. bzoj 1604: [Usaco2008 Open]Cow Neighborhoods 奶牛的邻居【切比雪夫距离+并查集+multiset】

    参考:http://hzwer.com/4361.html 坐标开long long,inf开大点 先曼哈顿转切比雪夫(x+y,x-y),距离就变成了max(x',y'): 先按x排序,维护两个指针, ...

  6. bzoj 1642: [Usaco2007 Nov]Milking Time 挤奶时间【dp】

    这不就是个n方dp吗--看了眼洛谷题解简直神仙打架 我全程没用到n-- 把休息时间并入产奶时间,注意"结束时间不挤奶",所以ei=ei+r-1,注意这个-1! 然后按r排序,设f[ ...

  7. rman 问题

    1. RMAN Repeatedly Fail To Backup Archivelogs with RMAN-20242 Cause: There is a mis-match between th ...

  8. asp.net ajax get post 中文乱码解决办法

    前台: var username = $("#UserName").val(); var tel = $("#tel").val(); var yzm = $( ...

  9. python做一个数独小游戏

    最近看了下python的一些知识,在这里记载一下. 1.首先是安装,在官网下载最新的版本3.6,安装的时候要注意在下面勾选上ADD TO PATH,安装的时候会自动写入到环境变量里面,如果没有勾选,可 ...

  10. Python爬虫+颜值打分,5000+图片找到你的Mrs. Right

        一见钟情钟的不是情,是脸 日久生情生的不是脸,是情 项目简介 本项目利用Python爬虫和百度人脸识别API,针对简书交友专栏,爬取用户照片(侵删),并进行打分. 本项目包括以下内容: 图片爬 ...