Python字符串与列表

1. 字符串转列表

str1 = "hi hello world"
print(str1.split(" "))
输出:
['hi', 'hello', 'world']

2. 列表转字符串

l = ["hi","hello","world"]
print(" ".join(l))
输出:
hi hello world

双引号或者单引号或者三个单引号或者三个双引号阔起来的数据,就是字符串.

Python 在 sys 模块中提供函数 getsizeof 来计算 Python 对象的大小。

sys.getsizeof(object[, default])

注意 ,注意同样是int 类型的同一个值,在Python2和Python3的长度是不一样的。

输出=======可以用“=”*7

format

1、通过位置来替换元素     print('{1},{0},{1}'.format('刘备',20))      输出为20,刘备,20
2、通过关键词   print('{name},{age}'.format(age=28,name='曹操'))   输出为 曹操,28
3、通过映射list
a_list = ['曹操',20,'中国']
print('my name is {0[0]},from {0[2]},age is {0[1]}'.format(a_list))
输出为my name is 曹操,from 中国,age is 28
{0[0]}是列表的第一项的第一个元素
在python3中input获取的数据,都以字符串的方式进行保存,即使输入的是数字,那么也是以字符串方式保存
列表与元组支持下标索引好理解,字符串实际上就是字符的数组,所以也支持下标索引。
Name="asdf"  name[1]="s"   name[-1]="f"   name[len(name)-1]=f
切片是指对操作的对象截取其中一部分的操作。字符串、列表、元组都支持切片操作。

切片的语法:[起始:结束:步长]

注意:选取的区间属于左闭右开型,即从"起始"位开始,到"结束"位的前一位结束(不包含结束位本身),注意,如果不写步长默认是1.步长是控制方向的,正数从左往右取,负数是从右到左取
[:] 提取从开头(默认位置0)到结尾(默认位置-1)的整个字符串
[start:] 从start 提取到结尾
[:end] 从开头提取到end - 1
[start:end] 从start 提取到end - 1
[start:end:step] 从start 提取到end - 1,每step 个字符提取一个
[::-1]逆序

注意,下面这些函数执行后并没有改变原字符串

1、.find()在符串中查找内容首次出现的位置,如果不存在返回-1
2、.rfind()从右边查找
3、index()跟find()方法一样,只不过如果str不在 mystr中会报一个异常
4、.rindex类似于 index(),不过是从右边开始.
5、replace把 mystr 中的 str1 替换成 str2,如果 count 指定,则替换不超过 count 次,最多等于count 
6、split以 str 为分隔符切片 mystr,如果 maxsplit有指定值,则仅分隔 maxsplit 个子字符串mystr.split(str=" ", maxsplit)   .split()将字符串中的非字符全部去掉(例如/   \ \n \t 空格等)
7、partition把mystr以str分割成三部分,str前,str自身和str后     mystr.partition(str)
8、 rpartition类似于 partition()函数,不过是从右边开始.
9、plitlines按照行分隔,返回一个包含各行作为元素的列表,按照换行符分割
 mystr = 'hello\nworld\natguigu\nand\natguiguPython' mystr.splitlines() 
10、startswith检查字符串是否是以 obj 开头, 是则返回 True,否则返回 False        mystr.startswith(obj)
11、endswith检查字符串是否以obj结束,如果是返回True,否则返回 False.      mystr.endswith(obj)
12、lower转换 mystr 中所有大写字符为小写       upper转换 mystr 中的小写字母为大写
13、lstrip删除 mystr 左边的空白字符
14、rstrip删除 mystr 字符串末尾的空白字符
15、strip删除mystr字符串两端的空白字符
16isspace如果 mystr 中只包含空格,则返回 True,否则返回 False.如果有多个空格同样返True
    mystr.isspace()   3
17、count返回 str在start和end之间 在 mystr里面出现的次数
        mystr.count(str, start=0, end=len(mystr))

扩展字符串函数

1、join     name = ['hello', 'world', 'atguigu', 'and', 'atguiguPython']mystr 中每个字符后面插入str,构造出一个新的字符串
2、capitalize 把字符串的第一个字符大写       mystr.capitalize()
3、title  把字符串的每个单词首字母大写
4、ljust返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串   mystr.ljust(width) 
5、rjust返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串    mystr.rjust(width) 
6、center返回一个原字符串居中,并使用空格填充至长度 width 的新字符串    mystr.center(width) 
7、isalpha如果 mystr 所有字符都连续的是字母 则返回 True,否则返回 False   mystr.isalpha()  
8、 isdigit如果 mystr 只包含数字则返回 True 否则返回 False.应用场景:输入数字的时候,判断是纯数字的候,                                  可以转成inimystr.isdigit() 
9、isalnum如果 mystr 所有字符都是字母或数字则返回 True,否则返回 False     mystr.isalnum()  
 Python比java和C语言的数组强大的地方在于列表中的元素可以是不同类型的

列表的循环遍历

打印多个姓名
names_list = ['刘备','曹操','孙权']
for name in names_list:
    print(name)
使用while循环   为了更有效率的输出列表的每个数据,可以使用循环来完成
列表的增删改查
添加元素("增"append, extend, insert)
1、append可以向列表添加元素    names.append(temp) temp是列表时添加数据会被【】括起
2、extend将另一个集合中的元素逐一添加到列表中   names.extend(a_name)
      Extend,append该变原来的列表,但没有返回值运算符有返回值(None)
3、insert在指定位置index前插入元素    names.insert(0,"曹丕")
append的注意事项,直接修改的是原列表
删除元素("删"del, pop, remove)
1、del根据下标进行删除  del names[1]
2、 pop删除最后一个元素   name = names.pop()
3、remove根据元素的值进行删除
注意,如果列表中有两个数据相同,移除的时候,值移除前一个数据
通过下标修改元素("改")
修改元素的时候,要通过下标来确定要修改的是哪个元素,然后才能进行修改
查找元素("查"in, not in, index, count)
所谓的查找,就是看看指定的元素是否存在
python中查找的常用方法为:
  in(存在),如果存在那么结果为True,否则为False
  not in(不存在),如果不存在那么结果为True,否则False
index和count与字符串中的用法相同
sort方法是将list按特定顺序重新排列,默认为由小到大,参数reverse=True可改为倒序,由大到小。
 reverse方法是将list逆置。

列表嵌套类似while循环的嵌套,列表也是支持嵌套的一个列表中的元素又是一个列表,那么这就是列表的嵌套类似java中二维数组

以字节(byte)为单位返回对象大小。

1KB=1024B;1MB=1024KB=1024×1024B。其中1024=210。
1B(byte,字节)= 8 bit(见下文);
1KB(Kibibyte,千字节)=1024B= 2^10 B;
1MB(Mebibyte,兆字节,百万字节,简称“兆”)=1024KB= 2^20 B;
1GB(Gigabyte,吉字节,十亿字节,又称“千兆”)=1024MB= 2^30 B;
1TB(Terabyte,万亿字节,太字节)=1024GB= 2^40 B;

网络带宽的单位与下载的单位,其实是不同的。

 运营商所说的“带宽”是数据传输的单位,即每秒可以传送多少个0或1,通常叫“速率”,单位是比特率(bps)。
我们所说的“速度”是传输文件容量的单位,即每秒可以传送多少八个一组0或1组成的数据组,通常叫“速度”。单位是字节(Byte)。
比特率(bps)在数据传输中,数据通常是串行传输的,即一个0或1接一个0或1地传输。比特率就是每秒串行通过的位数。
字节(Byte)是记忆体储存文件和传输文件容量的基本单位,1个字节等于8位二进制。即1个字节与八个0或1所占的空间是相同的。1 Byte = 8 Bits  
实际应用中网速大约要减去30%的网络损耗,
Kbps是什么意思?  
K是数量单位(即1024),b(bit)是二进制位数(即0或1)。p(per)是每次的意思。s(second)是时间单位,秒的意思。因此Kbps中的含义是:每秒能够传递多少次1024个二进制位数
KB/S是什么意思?  
K是数量单位(即1024),B(Byte)字节(即八个0或1所占的空间),是最基础的存储空间单位,S(second)是时间单位,秒的意思。 B/S的含义就是:每秒传递多少字节数据。KB/S的含义就是每秒传输多少千字节数据,也就是多少KB数据
Python len() 方法返回对象(字符、列表、元组、字典等)长度或项目个数。

猜你喜欢

转载自blog.csdn.net/xiaoming0018/article/details/80343244
今日推荐