python什么都好,就是可以的选择实在太多了。所以,用这一篇博文记录一下:

str和list互相转换

str转list

>>> a='apple'
>>> list(a)
['a', 'p', 'p', 'l', 'e']

list转str

>>> b=['a', 'p', 'p', 'l', 'e']
>>> ''.join(b)
'apple'

List的slicing用法

>>> num=list(range(20))
>>> num[:]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
>>> num[1:10]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> num[1:-1]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]
>>> num[::-1]
[19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
>>> num[1:9:-1]
[]
>>> num[9:1:-1]
[9, 8, 7, 6, 5, 4, 3, 2]

上述例子基本可以包含 slicing 的用法了:

num[a:b:c]

a: 表示slice的初始位置,且slice的结果包括它

b: 表示slice的结束位置,且slice的结果不包括它,这一点在range()函数中也是一样

c: 表示slice的步长,若是负数,则a:bslice的顺序必须是reversed的顺序,否则就如>>> num[1:9:-1] #[]

敲黑板,slicing操作对于tuple和string同样适用,只不过返回的仍然是tuple和string

>>> a
'apple'
>>> a[::-1]
'elppa'

两个list长度对齐

很多时候,我们需要对list进行补齐处理,然后往短的list后面补None或者0之类的值。其实,语法很简单,就是有时候想不到哈哈。

首先,对于字符串,python有一个zfill()函数可以往前补0

>>> s='123'
>>> s.zfill(6)
'000123'

然后,对于list呢,我的方法只能这样了:

>>> a=list(range(3))
>>> b=list(range(5))
>>> a.extend([0 for _ in range(len(b)-len(a))])
>>> a
[0, 1, 2, 0, 0]

字符串str的前缀或者后缀识别

str.endswith(suffix[, start[, end]])

Python3 endswith() 方法用于判断字符串是否以指定后缀结尾,如果以指定后缀结尾返回True,否则返回False。可选参数"start"与"end"为检索字符串的开始与结束位置。

str.startswith(str, beg=0,end=len(string));

startswith() 方法用于检查字符串是否是以指定子字符串开头,如果是则返回 True,否则返回 False。如果参数 beg 和 end 指定值,则在指定范围内检查。

  • 用法:

比如下述用法,返回特征中后缀带 _cat的columns名称

c_cat = [c for c in train.columns if c.endswith('_cat')]

判断字符串全为数字

python有个isdigit()函数,如果str全为数字,则返回true

关于矩阵生成

numpy可以生成对角矩阵

>>> np.eye(5)
array([[ 1., 0., 0., 0., 0.],
[ 0., 1., 0., 0., 0.],
[ 0., 0., 1., 0., 0.],
[ 0., 0., 0., 1., 0.],
[ 0., 0., 0., 0., 1.]])

numpy生成三角矩阵

>>> np.tri(3,3,0)
array([[ 1., 0., 0.],
[ 1., 1., 0.],
[ 1., 1., 1.]])
>>> np.tri(3,3,-1)
array([[ 0., 0., 0.],
[ 1., 0., 0.],
[ 1., 1., 0.]])

list里的部分元素进行排序

有时候,我们只需要对a[3:]的元素进行排序,并且进行inplace替换,貌似只能这样

>>> a
[8, 7, 6, 5, 4, 3, 2, 1]
>>> a[3:]=sorted(a[3:])
>>> a
[8, 7, 6, 1, 2, 3, 4, 5]
  • Reference:
  1. python slice的几个小点总结
  2. 关于三角矩阵

Python的list用法笔记的更多相关文章

  1. Python学习的个人笔记(基础语法)

    Python学习的个人笔记 题外话: 我是一个大二的计算机系的学生,这份python学习个人笔记是趁寒假这一周在慕课网,w3cschool,还有借鉴了一些博客,资料整理出来的,用于自己方便的时候查阅, ...

  2. python高级编程读书笔记(一)

    python高级编程读书笔记(一) python 高级编程读书笔记,记录一下基础和高级用法 python2和python3兼容处理 使用sys模块使程序python2和python3兼容 import ...

  3. 用Python 的一些用法与 JS 进行类比,看有什么相似?

    Python 是一门运用很广泛的语言,自动化脚本.爬虫,甚至在深度学习领域也都有 Python 的身影.作为一名前端开发者,也了解 ES6 中的很多特性借鉴自 Python (比如默认参数.解构赋值. ...

  4. Python回调函数用法实例详解

    本文实例讲述了Python回调函数用法.分享给大家供大家参考.具体分析如下: 一.百度百科上对回调函数的解释: 回调函数就是一个通过函数指针调用的函数.如果你把函数的指针(地址)作为参数传递给另一个函 ...

  5. jquery中关于append()的用法笔记---append()节点移动与复制之说

    jquery中关于append()的用法笔记---append()节点移动与复制之说 今天看一本关于jquery的基础教程,看到其中一段代码关于append()的一行,总是百思不得其解.于是查了查官方 ...

  6. Requests:Python HTTP Module学习笔记(一)(转)

    Requests:Python HTTP Module学习笔记(一) 在学习用python写爬虫的时候用到了Requests这个Http网络库,这个库简单好用并且功能强大,完全可以代替python的标 ...

  7. day01-day04总结- Python 数据类型及其用法

    Python 数据类型及其用法: 本文总结一下Python中用到的各种数据类型,以及如何使用可以使得我们的代码变得简洁. 基本结构 我们首先要看的是几乎任何语言都具有的数据类型,包括字符串.整型.浮点 ...

  8. 关于Python网络爬虫实战笔记③

    Python网络爬虫实战笔记③如何下载韩寒博客文章 Python网络爬虫实战笔记③如何下载韩寒博客文章 target:下载全部的文章 1. 博客列表页面规则 也就是, http://blog.sina ...

  9. python网络爬虫学习笔记

    python网络爬虫学习笔记 By 钟桓 9月 4 2014 更新日期:9月 4 2014 文章文件夹 1. 介绍: 2. 从简单语句中開始: 3. 传送数据给server 4. HTTP头-描写叙述 ...

随机推荐

  1. iframe实现局部刷新和回调(转)

    今天做项目遇到一个问题.就是提交表单的时候,要在后台验证用户名是否存在和验证码是否正确. 当验证码或者用户名存在的时候.在后台弹窗提示.可页面原本file里面符合要求的值刷新没了.用户体验不好.因为用 ...

  2. 8 个最好的 jQuery 树形 Tree 插件

    由于其拥有庞大,实用的插件库,使得 jQuery 变得越来越流行.今天将介绍一些最好的 jQuery 树形视图插件,具有扩展和可折叠的树视图.这些都是轻量级的,灵活的 jQuery 插件,它将一个无序 ...

  3. 神奇的ASCⅡ码图

    神奇的ASCⅡ码图 可能在网上也常见了asc2码图,但你知道是怎么做出来的吗?(总不可能是人一个一个字码进去的吧,当然,不排除有这种神人的可能

  4. 【Java入门提高篇】Day16 Java异常处理(上)

    当当当当当当,各位看官,好久不见,甚是想念. 今天我们来聊聊Java里的一个小妖精,那就是异常. 什么是异常?什么是异常处理? 异常嘛,顾名思义就是不正常,(逃),是Java程序运行时,发生的预料之外 ...

  5. Redis模块化基本介绍

    概要 Redis Modules System基本概念 基本应用 参考资料 1. Redis Modules System基本概念 Redis Modules System是4.0出现一大改动点,使得 ...

  6. MQTT入手笔记(二)

    Mosquitto是一个实现了MQTT3.1协议的代理服务器,由MQTT协议创始人之一的Andy Stanford-Clark开发,它为我们提供了非常棒的轻量级数据交换的解决方案.本文的主旨在于记录M ...

  7. JS中$含义和用法

    原博客:https://www.cnblogs.com/jokerjason/p/7404649.html$在JS中本身只是一个符号而异,在JS里什么也不是.但在JS应用库JQUERY的作者将之做为一 ...

  8. SpringBoot Whitelabel Error Page This application has no explicit mapping for /error, so you are seeing this as a fallback.

    使用SpringBoot写HelloWorld,当配置好启动类后,再创建新的controller或其它类,启动项目后访问对应的映射名,页面显示: Whitelabel Error Page This ...

  9. linux系统开机流程详解

    今天,我们主要来谈谈计算机系统的启动流程 1.BIOS启动 BIOS是写入到主板上的一个韧体(韧体就是写入到硬件上的一个软件程序).开机的时候,BIOS是计算机系统会主动执行的第一个程序.BIOS主要 ...

  10. 在Visual Studio中使用Debug Visualizers在C++中实现对原始类的自定义调试信息显示

    在Visual Studio中使用Debug Visualizers在C++中实现对原始类的自定义调试信息显示 当我们在VS的C++中使用vector.list.map等这些STL容器,在开启调试的时 ...