Python字符串操作之常忘的字符串、列表、数值
字符串操作
s为字符串
s.isalnum() 所有字符都是数字或者字母
s.isalpha() 所有字符都是字母
s.isdigit() 所有字符都是数字
s.islower() 所有字符都是小写
s.isupper() 所有字符都是大写
s.istitle() 所有单词都是首字母大写,像标题
s.isspace() 所有字符都是空白字符
s.index(x) 返回x所在索引,如:s.index(max(s))返回第一个最大值索引
判断是整数还是浮点数
a=123
b=123.123 >>>isinstance(a,int)
True
>>>isinstance(b,float)
True
>>>isinstance(b,int)
False
注意:在Python中,字符串是不可变的,因此无法就地更改字符。
L
Out[20]: 'hgfdsa'L[1]
Out[21]: 'g'L[1]="k"
Traceback (most recent call last):File "<ipython-input-22-dedefc94809c>", line 1, in <module>L[1]="k"TypeError: 'str' object does not support item assignment
反转字符串
L="asdfgh"
LL = list(L)
LL.reverse()
L = "".join(LL)
L
Out[19]: 'hgfdsa'
string中的index和find
find和C中的strstr函数一样,s1.find(s2)返回s2作为s1的子字符串的起始位置,若干不存在返回-1,如果s2为空返回0。
index除了不能处理不存在的情况,其他和find一样
List操作
将两个list合并为一个list:
list3 = list1+list2 #其中元素不能含有Notetype类型
求list、ndarray众数
from scipy import statsmode(a, axis=0, nan_policy='propagate')Return an array of the modal (most common) value in the passed array.If there is more than one such value, only the smallest is returned.The bin-count for the modal bins is also returned.Parameters----------a : array_liken-dimensional array of which to find mode(s).axis : int or None, optionalAxis along which to operate. Default is 0. If None, compute overthe whole array `a`.nan_policy : {'propagate', 'raise', 'omit'}, optionalDefines how to handle when input contains nan. 'propagate' returns nan,'raise' throws an error, 'omit' performs the calculations ignoring nanvalues. Default is 'propagate'.Returns-------mode : ndarrayArray of modal values.count : ndarrayArray of counts for each mode.Examples--------
a = np.array([[6, 8, 3, 0],[3, 2, 1, 7],[8, 1, 8, 4],[5, 3, 0, 5],[4, 7, 5, 9]])
from scipy import stats
stats.mode(a) #默认是axis=0,即求出各列的众数,若有出现次数相同的数字,则输出值小的那个(array([[3, 1, 0, 0]]), array([[1, 1, 1, 1]]))#前一个array是众数,后一个array是对应众数出现的次数To get mode of whole array, specify ``axis=None``:stats.mode(a, axis=None) #axis=None为求包含矩阵中所有项的众数(array([3]), array([3]))
List排序
第一种:内建方法sort()
可以直接对列表进行排序
用法:
list.sort(func=None, key=None, reverse=False(or True))
对于reverse这个bool类型参数,当reverse=False时:为正向排序;当reverse=True时:为反向排序。默认为False。
执行完后会改变原来的list,如果你不需要原来的list,这种效率稍微高点
为了避免混乱,其会返回none
例如:
>>> list = [2,8,4,6,9,1,3]
>>> list.sort()
>>> list
[1, 2, 3, 4, 6, 8, 9]
第二种:内建函数sorted()
sorted()也可以对字符串进行排序,字符串默认按照ASCII大小来比较。
这个和第一种的差别之处在于:
sorted()不会改变原来的list,而是会返回一个新的已经排序好的list
list.sort()方法仅仅被list所定义,sorted()可用于任何一个可迭代对象
用法:
sorted(list)
该函数也含有reverse这个bool类型的参数,当reverse=False时:为正向排序(从小到大);当reverse=True时:为反向排序(从大到小)。当然默认为False。
执行完后会有返回一个新排序好的list
例如:
>>> list = [2,8,4,1,5,7,3]
>>> other = sorted(list)
>>> other
[1, 2, 3, 4, 5, 7, 8]>>> other = sorted(list,reverse=True) #sort也是如此
>>> other
[8, 7, 5, 4, 3, 2, 1]
自定义排序
import functools
L = [2,1,4,9,3,3]
def reversed_cmp(x,y):if x>y:return -1if x<y:return 1return 0print(sorted(L,key=functools.cmp_to_key(reversed_cmp)))out[1]:[9, 4, 3, 3, 2, 1]
compare(x,y)传入两个待比较的元素 x, y,如果 x 应该排在 y 的前面,返回 -1,如果 x 应该排在 y 的后面,返回 1。如果 x 和 y 相等,返回 0。python3中需要用functools.cmp_to_key,不像python2中直接甩一个cmp函数在后面就行了。
赋值时子List中用L[:]和L的区别
将多维List中的List赋值给另一个变量的时候,如果用append、pop方法改变这个变量,那么原来的List也会改变,如果赋值时用[:]形式则不会改变。但是直接对变量赋值运算不会改变原来List。
##没有用[:]形式
L = [[1],[2]]
for i in L:x = ix.append(0)print(L)
out[1]:
[[1, 0], [2]]
[[1, 0], [2, 0]]
##用的[:]形式
L = [[1],[2]]
for i in L:x = i[:]x.append(0)print(L)
out[2]:
[[1], [2]]
[[1], [2]]
##直接对x等号赋值
L = [[1],[2]]
for i in L:x = ix = [6]print(L)
out[3]:
[[1], [2]]
[[1], [2]]
在for循环中L和L[:]的区别
##in L的话,会不断用更新后的L再次进行for循环
L = [1]
for i in L:print(L)L.append(1)
out[1]:
[1]
[1, 1]
[1, 1, 1]
[1, 1, 1, 1]
[1, 1, 1, 1, 1]
[1, 1, 1, 1, 1, 1]
[1, 1, 1, 1, 1, 1, 1]
[1, 1, 1, 1, 1, 1, 1, 1]
[1, 1, 1, 1, 1, 1, 1, 1, 1]
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
……………………
##用了L[:]
L = [1]
for i in L[:]:print(L)L.append(1)
out[2]:
[1]
数值操作
对数值取整的几种方法
四舍五入:
这里round并不总是四舍五入,在4.5的时候会得到去尾法的结果;另外round有两个参数,第二个参数用来控制精度,默认是0(即取整);
num = 4.6
round(num)
Out[40]: 5
去尾法:
num = 4.9
int(num)
Out[36]: 4
进一法:
import math
num = 4.1
math.ceil(num)
Out[35]: 5
Python字符串操作之常忘的字符串、列表、数值相关推荐
- 字符串操作 c语言,C语言字符串操作(示例代码)
C语言字符串操作函数 1.strlen strlen用于求一个C风格字符串的长度,函数原型为 #include size_t strlen(const char *s); 返回值为字符串的长度,当遇到 ...
- 【字符串操作之】从原字符串中切出一段,返回一个新的字符串→→slice方法...
slice从原字符串中切出一段,返回一个新的字符串,原字符串并未改变. 如果按 startIndex 索引到的字符与按 endIndex 索引到的字符相同或位于后者的右侧,则该方法返回一个空字符串. ...
- 字符串操作:截取及分割字符串
截取字符串,分割字符串 1.截取字符串 SubString方法可以截取字符串中指定索引位置及指定长度的字符.(字符串中的索引是从0开始) 方法示例: string _testStr = "痴 ...
- android 字符串反转,Golang之字符串操作(反转中英文字符串)
//字符串反转 package main import "fmt" func reverse(str string) string { var result string strL ...
- c语言1066字符分类统计,C语言字符串操作总结大全(超详细)
1)字符串操作strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, p1) 附加字符串 strncat(p, p1, n) 附加指定长度字 ...
- Kettle使用_28 转换之数值范围与字符串操作
Kettle使用_28 转换之数值范围与字符串操作 需求:通过Kettle将score字段进行去重.数值范围转换,对字段进行字符串操作(去除空格.改成大写.字符串替换) 解决方法:通过去除重复记录.数 ...
- 《C和指针》——C语言字符串操作
字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, p1) 附加字符串 strncat(p, p1, n) 附加指定长度字符 ...
- c语言中空格字符怎么表示_C语言中常用的字符串操作函数
作者:陈太浪 出处:https://home.cnblogs.com/u/TomHe789/ C语言中提供了许多的字符串操作函数,常见的字符串操作函数有以下几种: 1.求字符串长度的函数 原型函数:s ...
- C语言字符串操作总结大全(超详细)
1)字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, p1) 附加字符串 strncat(p, p1, n) 附加指定长度 ...
最新文章
- 2018-3-25论文(Whale Optimizer Algorithm)+(Gery Wolf Optimizer)笔记三---算法部分的对比
- 数组名和数组名取地址的区别
- SAP 企业管理软件与解决方案 产品简介
- 深度学习: mAP (Mean Average Precision)
- 如何写出高性能SQL语句
- java读取src xml文件路径_Java获取路径方法相对路径读取xml文件方法
- Python 3.6新特性(部分)
- linux识别csr8510,【记录】给CSR8510 A10芯片的USB转蓝牙模块安装驱动
- 线上软硬件类的接单平台有哪些?
- 机房动力环境监测解决方案
- 南宁二中三中高考2021成绩查询,2021广西重点高中名单及排名
- excel基础-固定某一列的输入内容
- 登录页面渗透测试思路总结
- 看电影学英语最时尚法则:“加减乘除”
- 【数据结构与算法】课程设计报告
- android记事本的设计报告,安卓记事本开发设计报告.pdf
- 用ul制作html表单,要利用 display属性把段落P、标题h1、表单form、列表ul和li都可以定义成行内块元素,其属性值为...
- 手持设备:懒人的互联网音乐智能同步/播放器
- MySQL 进阶 索引 -- SQL性能分析(SQL执行频率:查看当前数据库的INSERT、UPDATE、DELETE、SELECT的访问频次、慢查询日志、 profile详情、explain)
- 麦克斯韦方程组的物理意义是什么
热门文章
- mysql fieldtype_【原创】9. MYSQL++中的Field、FieldNames以及FieldTypes类型
- 推特开发者账号申请 Academic 学术【推特开发者文档V2系列6】——tweepy4 获取推文的点赞列表
- linux8安装bbr_手动更新 linux 内核开启 BBR 算法
- NodeJs安装和配置
- asp html本地测试工具,ASP本地调试工具
- android 动态修改资源,Android如何动态修改Manifest文件
- PromQL 内置函数
- 冒泡算法 升序 降序
- 特朗普新税法实施 专家解读华人移民如何受影响
- 预防“断种”风险,专家:基因编辑能提高我国种子竞争力