Python常见数据类型及操作

基础数据类型

什么是数据类型?

我们人类可以很容易的分清数字与字符的区别,但计算机并不能,计算机虽然很强大,但从某种角度上看又很傻,除非你明确的告诉它,1是数字,“汉”是文字,否则它是分不清1和‘汉’的区别的。

因此,在每个编程语言里都会有一个叫数据类型的东西,其实就是对常用的各种数据类型进行了明确的划分,你想让计算机进行数值运算,你就传数字给它,你想让他处理文字,就传字符串类型给他。

字符串

str(字符串) ‘1’ ” I‘,m a teacher “

python中,凡是用引号(单引、双引),引起来的内容都是字符串。

字符串常用操作:

s = ‘I am from china‘

#首字母大写
print(s.capitalize())
I am from china

#全大写
print(s.upper())
I AM FROM CHINA

#全小写
print(s.lower())
i am from china

#大小写反转
print(s.swapcase())
i AM FROM CHINA

#所有首字母大写
print(s.title())
I Am From China

#计算字符串长度
print(len(s))
15

#内容居中,两边填充(共50个字符串,多余的用~填充,默认填充符是空格)
print(s.center(50,‘~‘))
~~~~~~~~~~~~~~~~~I am from china~~~~~~~~~~~~~~~~~~

#判断字符串以什么开始
print(s.startswith(‘I‘))
True

#判断字符串以什么结尾
print(s.endswith(‘I‘))
False

#查询字符串是否含有某元素,找到返回元素对应下标,找不到返回-1
print(s.find(‘a‘))
2 

比较重要的几个方法:

s=‘  Chi nese ‘

#删除前后空格
print(s.strip())
Chi nese
#删除后面的空格
print(s.rstrip())
  Chi nese
#删除前面的空格
print(s.lstrip())
Chi nese
#统计元素个数
print(s.count(‘e‘))
2
#将字符串以元素中内容分割为列表
print(s.split())
[‘Chi‘, ‘nese‘]
print(s.split(‘e‘))
[‘  Chi n‘, ‘s‘, ‘ ‘]

切片:

切片就是通过索引(索引:索引:步长)截取字符串的一段,形成新的字符串(原则就是顾头不顾尾)
a = ‘ABCDEFGHIJK‘
print(a[0:3])
ABC
print(a[2:5])
CDE
#默认到最后
print(a[0:])
ABCDEFGHIJK
# -1 是列表中最后一个元素的索引,但是要满足顾头不顾腚的原则,所以取不到K元素
print(a[0:-1])
ABCDEFGHIJ
#加步长
print(a[0:5:2])
ACE
#反向加步长
print(a[5:0:-2])
FDB  

索引:

索引即下标,就是字符串组成的元素从第一个开始,初始索引为0以此类推
a = ‘ABCDEFGHIJK‘
print(a[0])
print(a[3])
print(a[5])
print(a[7])

#输出
A
D
F
H

补充:
字符串计算

#相加,即拼接 : +
a = ‘hello ‘
b = ‘world‘
print(a+b)
#输出
hello world

#与数字相乘: *
print(‘hello ‘*4)
#输出
hello hello hello hell

字符串替换

#将重新替换为你,如果后面不跟次数,默认替换所有
s = ‘重新打开一个终端窗口,重新打开一个终端窗口‘
s1 =s.replace(‘重新‘,‘你‘,1)
print(s1)
你打开一个终端窗口,重新打开一个终端窗口

字符串判断

print("hahaha".isalpha())       #判断是不是字母
print("hahaha123".isalnum())    #判断是不是阿拉伯数字
print(u"23".isdecimal())        #判断是否只包含十进制字符,定义十进制在字符串前加‘u‘即可
print("2".isdigit())            #判断是否整数
print("al_ex".isidentifier())   #判断是否合法的变量名
print("alex".islower())         #判断是否全为小写
print("Alex".isupper())         #判断是否全为大写

字符串循环

name=‘Love1‘
for i in name:
    print(i)

#输出
L
o
v
e
1

整型

int(整型) 18,23 常用于计算。

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

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

long(长整型)

理论上Python没有限制长整数大小,实际由于机器内存有限,数值不会无限大

注意:在Python3里不再有long类型了,全都是int

float(浮点型)

扫盲 http://www.cnblogs.com/alex3714/articles/5895848.html 
浮点数用来处理实数,即带有小数的数字。类似于C语言中的double类型,占8个字节(64位),其中52位表示底,11位表示指数,剩下的一位表示符号。

complex(复数) 
复数是由实数部分和虚数部分组成,一般是x+yj形式,其中x为复数的实数部分,y为复数的虚数部分

用来测磁场、量子力学之类的,很少用到。

数字在pycharm 中的表现形式: 
加引号的数字是 字符串;不加引号的数字是 “数字”,红色的

布尔值

bool(布尔值)

只有真或假两种状态,性别、命题真假,常用于判断。

真   1   True

假   0   False

列表

列表是python中的基础数据类型之一,它是以[ ]括起来,每个元素以逗号隔开,而且可以存放各种数据类型。

列表相比于字符串,不仅可以储存不同的数据类型,而且可以储存大量数据,32位python的限制是 536870912 个元素,64位python的限制是 1152921504606846975 个元素。列表是有序的,有索引值,可切片,方便取值。

列表常用方法:

索引、切片同字符串。

增加

li = [1,‘a‘,‘b‘,2,3,‘a‘]

#按照索引去增加
li.insert(0,55)
print(li)
[55, 1, ‘a‘, ‘b‘, 2, 3, ‘a‘]
#默认增加到最后一个元素
li.append(‘aaa‘)
print(li)
[1, ‘a‘, ‘b‘, 2, 3, ‘a‘, ‘aaa‘]
#增加一个列表到最后一个元素
li.append([1,2,3])
print(li)
[1, ‘a‘, ‘b‘, 2, 3, ‘a‘, [1, 2, 3]]
#迭代增,会将内容分解到最小元素
li.extend(‘abc‘)
print(li)
[1, ‘a‘, ‘b‘, 2, 3, ‘a‘, ‘a‘, ‘b‘, ‘c‘]

 删除

li = [1,‘a‘,‘b‘,2,3,‘a‘]

#按索引删除
li.pop(0)
print(li)
[‘a‘, ‘b‘, 2, 3, ‘a‘]
#默认删除最后一个
li.pop()
print(li)
[1, ‘a‘, ‘b‘, 2, 3]
#按元素删除
li.remove(‘a‘)
print(li)
[1, ‘b‘, 2, 3, ‘a‘]
#清空列表
li.clear()
print(li)
[]
#直接删除列表
del li
print(li)
NameError: name ‘li‘ is not defined
#切片去删除
del li[0:2]
print(li)
[‘b‘, 2, 3, ‘a‘]

 修改

li = [1,‘a‘,‘b‘,2,3,‘a‘]

#按索引修改
li[0] = ‘8‘
print(li)
[‘8‘, ‘a‘, ‘b‘, 2, 3, ‘a‘]

#切片修改,按迭代处理,内容会分解到最小元素都加进去
li[0:2]=‘hello‘
print(li)
[‘h‘, ‘e‘, ‘l‘, ‘l‘, ‘o‘, ‘b‘, 2, 3, ‘a‘]

 查询

li = [1,‘a‘,‘b‘,2,3,‘a‘]
#遍历查询
for i in li:
    print(i)
1
a
b
2
3
a

#测量长度
l=len(li)
print(l)
6

#统计次数
print(li.count(‘a‘))
2

#查索引
print(li.index(‘b‘))
2

 排序

li = [1, 5, 7, 2, 3, 4]

#正排序
li.sort()
print(li)
[1, 2, 3, 4, 5, 7]

#倒排序
li.sort(reverse=True)
print(li)
[7, 5, 4, 3, 2, 1]

#反转
li.reverse()
print(li)
[4, 3, 2, 7, 5, 1]

元组

数据只读,也叫做只读列表。

元组被称为只读列表,即数据可以被查询,但不能被修改,所以,字符串的切片操作同样适用于元组。例:(1,2,3)("a","b","c")

字典 

字典一种key - value 的数据类型,使用就像我们小时候用的字典,通过部首、拼音来查对应页的详细内容。 
字典的特性: 字典是无序的; key必须是唯一的,so天生去重。 
字典里面的key是唯一的,所以不用索引表 
如何实现唯一?

hash 中文名:散列 通过一定的数学算法,使字符串能变成唯一的数字序列

增删改查

names = {
    "stu1101" :{"name":"Alex","age":22,"hobbie":"girl"},
    "stu1102" : "Jack",
    "stu1103" : "rain",
}
print(names)
#查询
print(names["stu1101"])
print(names["stu1101"]["hobbie"])
#判断key-"stu1104"是否存在,如果存在返回值,如果否返回none;也可以自定义返回内容,此处为no
print(names.get("stu1104","no"))
#增加
names["stu1104"] = ["Rose",23,"DBA"]
print(names["stu1104"])
#修改
names["stu1104"][0] = "Violet"
print(names["stu1104"])
#删除
print(names.pop("stu1105","不存在"))
del names["stu1103"]
print(names)

#输出
{‘stu1103‘: ‘rain‘, ‘stu1102‘: ‘Jack‘, ‘stu1101‘: {‘age‘: 22, ‘name‘: ‘Alex‘, ‘hobbie‘: ‘girl‘}}
{‘age‘: 22, ‘name‘: ‘Alex‘, ‘hobbie‘: ‘girl‘}
girl
no
[‘Rose‘, 23, ‘DBA‘]
[‘Violet‘, 23, ‘DBA‘]
不存在
{‘stu1104‘: [‘Violet‘, 23, ‘DBA‘], ‘stu1102‘: ‘Jack‘, ‘stu1101‘: {‘age‘: 22, ‘name‘: ‘Alex‘, ‘hobbie‘: ‘girl‘}}

循环

names = {
    "stu1101":{"name":"Alex","age":22,"hobbie":"girl"},
    "stu1102": "Jack",
    "stu1103": "rain",
    "stu1104":{"Rose",23,"DBA"}
}
#字典循环常用的两种方式:打印出key和value
# @1 尽量用这种,效率高
for key in names:
    print(key,names[key])
# @2 先将字典转为列表,再进行循环,效率低
print(names.items())
for k,v in names.items():
    print(k,v)
print(names.keys())         #打印所有key
print(names.values())       #打印所有value
#先获取这个值,如果存在就打印,不存在就创建
print(names.setdefault("stu1106","Mary"))
print(names)
#字典合并 相当于修改1102的值,因为字典中的key是唯一的
name1 = {"stu1102":"Java",1:333,2:444}
names.update(name1)
print(names)
#输出
stu1103 rain
stu1101 {‘name‘: ‘Alex‘, ‘age‘: 22, ‘hobbie‘: ‘girl‘}
stu1102 Jack
stu1104 {‘Rose‘, ‘DBA‘, 23}
dict_keys([‘stu1103‘, ‘stu1101‘, ‘stu1104‘, ‘stu1102‘])
dict_values([‘rain‘, {‘name‘: ‘Alex‘, ‘hobbie‘: ‘girl‘, ‘age‘: 22}, {‘DBA‘, ‘Rose‘, 23}, ‘Jack‘])
Mary
{‘stu1103‘: ‘rain‘, ‘stu1101‘: {‘hobbie‘: ‘girl‘, ‘age‘: 22, ‘name‘: ‘Alex‘}, ‘stu1106‘: ‘Mary‘, ‘stu1104‘: {‘Rose‘, ‘DBA‘, 23}, ‘stu1102‘: ‘Jack‘}
{1: 333, ‘stu1106‘: ‘Mary‘, 2: 444, ‘stu1104‘: {‘Rose‘, ‘DBA‘, 23}, ‘stu1103‘: ‘rain‘, ‘stu1102‘: ‘Java‘, ‘stu1101‘: {‘hobbie‘: ‘girl‘, ‘age‘: 22, ‘name‘: ‘Alex‘}}

字典中的深浅copy

names = {
    "stu1101":{"name":"Alex","age":22},
    "stu1102": "Jack",
    "stu1103": "rain",
    "stu1104":{"Rose",23,"DBA"}
}
name1 = names.copy()
#第一层的数据不会变,其他的都会变。应用场景:银行共享账户:主卡、副卡
names["stu1103"] = "RAIN"       #此处相当于开辟了一块新的内存地址,所以names中的rain会改变
names["stu1101"]["age"] = 24    #此处只是修改了列表中的数据,而列表的内存地址没有改变,所以打印出的names和name1内容会相同
print(names)
print(name1)
#深copy, 完全copy
import copy
name2 = copy.deepcopy(names)
print(name2)
#输出
{‘stu1103‘: ‘RAIN‘, ‘stu1102‘: ‘Jack‘, ‘stu1101‘: {‘age‘: 24, ‘name‘: ‘Alex‘}, ‘stu1104‘: {‘DBA‘, ‘Rose‘, 23}}
{‘stu1101‘: {‘age‘: 24, ‘name‘: ‘Alex‘}, ‘stu1102‘: ‘Jack‘, ‘stu1103‘: ‘rain‘, ‘stu1104‘: {‘DBA‘, ‘Rose‘, 23}}
{‘stu1101‘: {‘age‘: 24, ‘name‘: ‘Alex‘}, ‘stu1102‘: ‘Jack‘, ‘stu1103‘: ‘RAIN‘, ‘stu1104‘: {‘DBA‘, ‘Rose‘, 23}}

原文地址:https://www.cnblogs.com/zhaomeng/p/10989442.html

时间: 2024-12-12 17:18:16

Python常见数据类型及操作的相关文章

python的数据类型及操作

简述python的几种简单的数据类型及使用方式 字符串 字符串是不可变数据类型,拥有多种内置方法可以操作. 创建字符串就是给变量分配一个字符串的值即可.通常用引号创建字符串. tell = 'my name is Jeff' tell1 = "my name is Jeff" tell2 = '''my name is Jeff, I'm oldboy .''' 字符串切片 tell = 'my name is Jeff' print(tell[0]) print(tell[:7])

python笔记-数据类型&文件操作

数据类型int标准的长度FloatLong长整型,无限长a = 2**31 2乘以31次方type 查看数据的数据类型布尔:真或假 1或0 文件操作时with as 打开文件readlines 读取多行 strip()函数用于把换行符去掉 def主文件判断python的主函数,python index.py,通过index.py内部调用自动创建变量if name = 'main':例如 python 对象对象基于类创建,一切事物都是对象 原文地址:http://blog.51cto.com/11

python基本数据类型之操作

python注释 当行注视:# 被注释内容多行注释:""" 被注释内容 """ 字符串操作 # 代表单行注释                  s="hello"                          print(s*2)   #hellohello           print(s[2:]) # llo,切片操作,从下标2切到最后    print('a' in s)  #False             

Python常见数据类型

/usr/bin/python env # -*- coding:UTF-8 -*- #字符串 string 用''或者""或者''' '''来表示 name = 'What is your name?' >>> name.capitalize()               # 字符串首字母大写 'What is your name?' >>> name = "su shi"   >>> name.title(

Python爬虫总结(二)常见数据类型及其解析方法

Python爬虫总结(二)常见数据类型 上一篇我们简单介绍了如何用Python发送 http/https 请求获取网上数据,从web上采集回来的数据的数据类型有很多种,主要有: 放在HTML里. 直接放在javascript里. 放在JSON里. 放在XML里. 注意:这里很多概念都是web前端开发里的,因为我们采集的大多数数据都来自web,因此了解一些前端知识还是挺有必要的. 下面我简单介绍下各种数据类型,并结合一些实例介绍它们的解析方法. 数据类型 放在HTML里 HTML即超文本标记语言,

python核心数据类型笔记

在这里,首先声明,python核心数据类型在这里就认为是python内置的数据类型 在python中.序列类型包含字符串,列表和元组 字符串: 字符串字面量:将文本引入单引号,双引号,三引号 默认的编码类型是字符编码(8bit) 在python2中,如果要使用unicode编码(16bit),需在定义字符串的引号前面加u 在python中,有文档字符串的概念,所谓文档字符串就是在模块,类或则是函数中的第一条语句是一个字符的话(用引号定义),那么该字符就是文档字符串,可以使用__doc__属性引用

2 Python基础数据类型

Python基础数据类型 # 数据类型分为可变数据类型和不可变数据类型 # 可变数据类型:list.set.dict 不可哈希 # 不可变数据类型:str.int.bool.tuple(元祖) 可哈希 基本类型和数据集 基本类型 int 数字型:int 1,2,3,56 取值范围为:-2\*\*31~2**31-1 可以进行的运算:+ - * / **(幂次方) %(取余) type() 查看数据类型 str 字符串:str python中只要是用引号引起来的全是字符串 字符串转化成数字的条件:

Python常见数据归纳总结

常见数据类型总结 复习 字符串 列表 元组 字典 集合 公共方法 知识点回顾 Python 中数据类型可以分为数字型和非数字型 数字型 整型 (int) 浮点型(float) 布尔型(bool) 真 True, 非 0 数 -- 非零即真 假False ,0 复数型 (complex) 主要用于科学计算,例如:平面场问题.波动问题.电感电容等问题 非数字型 字符串(str) 列表(list) 元组(tuple) 字典(dict) 集合(set) 在 Python 中,所有 非数字型变量 都支持以

初学Python常见异常错误,总有一处你会遇到!

初学Python常见错误 忘记写冒号 误用= 错误 缩紧 变量没有定义 中英文输入法导致的错误 不同数据类型的拼接 索引位置问题 使用字典中不存在的键 忘了括号 漏传参数 缺失依赖库 使用了python中对关键词 编码问题 1. 忘记写冒号 在 if.elif.else.for.while.def语句后面忘记添加 : age = 42 if age == 42 print('Hello!') File "<ipython-input-19-4303141d6f97>", l