Python基础2之数据类型、列表与元组、字符串的基本操作

一、数据类型

1、int(整型)

  在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647

  在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807

long(长整型)

  跟C语言不同,Python的长整数没有指定位宽,即:Python没有限制长整数数值的大小,但实际上由于机器内存有限,我们使用的长整数数值不可能无限大。

  注意,自从Python2.2起,如果整数发生溢出,Python会自动将整数数据转换为长整数,所以如今在长整数数据后面不加字母L也不会导致严重后果了。

2、float(浮点型)

浮点数用来处理实数,即带有小数的数字。类似于C语言中的double类型,占8个字节(64位),其中52位表示底,11位表示指数,剩下的一位表示符号。

3、complex(复数)

复数由实数部分和虚数部分组成,一般形式为x+yj,其中的x是复数的实数部分,y是复数的虚数部分,这里的x和y都是实数。

4、布尔值

真或假 1 或 0

5、字符串

字符串是 %s;整数 %d;浮点数%f

字符串基本操作:

移除空白、分割、长度、索引、切片

6、列表

创建列表:

name_list = ['alex', 'seven', 'eric']或name_list = list(['alex', 'seven', 'eric'])

基本操作:

索引、切片、追加、删除、长度、切片、循环、包含

7、元组(不可变列表)

创建元组:

ages = (11, 22, 33, 44, 55)或ages = tuple((11, 22, 33, 44, 55))

8、字典(无序)

创建字典:

person = {"name": "mr.wu", 'age': 18}或person = dict({"name": "mr.wu", 'age': 18})

常用操作:

索引、新增、删除、键、值、键值对、循环、长度

9、数据类型运算之三元运算符

result = 值1 if 条件 else 值2

如果条件为真:result = 值1

如果条件为假:result = 值2

 

二、列表与元组基本操作

1、列表

list = ["apple","bob","coin","dog"]

切片

# 取出某一个值
str1 = list[1]

# 取出bob和coin,“顾头不顾尾”
str2 = list[1:3]

# 取出最后一个
str3 = list[-1]

# 取出coin和dog 依然是“顾头不顾尾” 
str4 = list[-2:]

追加

list.append("element")

插入

list.insert(2,"banana")

修改

list[2] = "cow"

删除

# 第一种删除方法
list.remove("bob")

# 第二种删除方法
del list[1]

扩展

list2 = [1,2,3]

list.extend(list2)

拷贝

# 第一种
list2 = list.copy()
# 第二种
list3 = list[:]
# 第三种
list4 = list(list)

统计

list.count("dog")

排序&反转

# 排序
list.sort()
# 反转
list.reverse()

获取下标

list.index("dog")

2、元组

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

它只有2个方法,一个是count,一个是index,完毕。 

 

3、字符串操作

name = "huihui"

name.capitalize()  # 首字母大写
name.casefold()   # 大写全部变小写
name.center(50,"-")  # 输出 '---------------------huihui----------------------'
name.count('u') # 统计u出现次数
name.encode()  # 将字符串编码成bytes格式
name.endswith("i")  # 判断字符串是否以i结尾
 "\t huihui".expandtabs(10) # 输出'          huihui', 将\t转换成多长的空格 
name.find('ui')  # 查找ui,找到返回其索引, 找不到返回-1 

# format:
introduce = "my name is {name} and {year} years old".format(name="huihui",year = 23)
# format_map
introduce = "my name is {name} and {year} years old".format_map({"name":"huihui","age":23})

name.isdigit() # 是否为十进制数字字符
name.isidentifier() #是否为合法的标识符

>>>"+".join(["1","2","3"])
1+2+3

>>>name.replace("h","H",1) 
Huihui

>>>"1+2+3".split("+")
1 2 3

 

4、字典操作

字典是无序的,key是唯一的

基本操作:

>>>info = {
>>>   "name":"huihui",
>>>    "age":"23"
>>>}

# 增加

>>>info["height"] = "173cm"
{'name': 'huihui', 'age': '23', 'height': '173cm'}

# 修改

>>>infor["height"] = "175cm"
{'name': 'huihui', 'age': '23', 'height': '175cm'}

# 删除

>>>del info["height"]
{'name': 'huihui', 'age': '23'}
>>>info.pop["height"]    # 标准删除
{'name': 'huihui', 'age': '23'}

# 查找

>>> "age" in info #标准用法
True
>>> info.get("age")  #获取 失败返回None
23
>>> info["age"] #同上,但是看下面
23
>>> info["age"]  #如果一个key不存在,就报错,get不会,不存在只返回None

多级字典嵌套操作:

info = {
    "stu1":{
        "name":"huihui"
    },
    "stu2":{
        "name":"hui"
    }
}

字典的其他操作:


# 取出所有值
>>> info.values()
dict_values(['LongZe Luola', 'XiaoZe Maliya'])

# 取出所有key
>>> info.keys()
dict_keys(['stu1102', 'stu1103'])


# setdefault 有key则返回,没有key就将默认值赋值
>>> info.setdefault("stu1106","Alex")
'Alex'
>>> info
{'stu1102': 'LongZe Luola', 'stu1103': 'XiaoZe Maliya', 'stu1106': 'Alex'}
>>> info.setdefault("stu1102","龙泽萝拉")
'LongZe Luola'
>>> info
{'stu1102': 'LongZe Luola', 'stu1103': 'XiaoZe Maliya', 'stu1106': 'Alex'}


# update 将b和a合并,其中相同的key对应的值覆盖,不同的则合并
>>> info
{'stu1102': 'LongZe Luola', 'stu1103': 'XiaoZe Maliya', 'stu1106': 'Alex'}
>>> b = {1:2,3:4, "stu1102":"龙泽萝拉"}
>>> info.update(b)
>>> info
{'stu1102': '龙泽萝拉', 1: 2, 3: 4, 'stu1103': 'XiaoZe Maliya', 'stu1106': 'Alex'}

# items 将字典列表化
info.items()
dict_items([('stu1102', '龙泽萝拉'), (1, 2), (3, 4), ('stu1103', 'XiaoZe Maliya'), ('stu1106', 'Alex')])


# 通过一个列表生成默认dict,有个没办法解释的坑,少用吧这个
>>> dict.fromkeys([1,2,3],'testd')
{1: 'testd', 2: 'testd', 3: 'testd'}

 

循环字典:

#方法1
for key in info:
    print(key,info[key])

#方法2
for k,v in info.items(): #会先把dict转成list,数据里大时莫用
    print(k,v)


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值