最近在Youtube的Python视频教程上学习Python相关的基础知识,视频由Corey Schafer制作,讲得十分简单明了,英文发音也比较清晰,几乎都能听懂,是一个不错的Python入门学习的视频,同时还能学学英语。本篇博客用代码记录一下所学的相关基础知识,虽然很简单,但是自己再写一遍加深印象。

Slicing Lists and Strings(切片)

切片用来操作list和string类型,以下几个例子差不多可以掌握切片了。

# 语法 list[start:end:step]
my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
# -10,-9,-8,-7,-6,-5,-4,-3,-2,-1 print my_list[1:5]
# result : [1, 2, 3, 4] print my_list[-7:-2]
# result : [3, 4, 5, 6, 7] print my_list[:]
# result : [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] #间隔为2
print my_list[1:8:2]
# result : [1, 3, 5, 7] #反转list
print my_list[::-1]
# result : [9, 8, 7, 6, 5, 4, 3, 2, 1, 0] #String同样可以用切片
sample = "hello world"
print sample[::-1]
# result : dlrow olleh

Comprehensions (生成式)

生成式可以用十分简洁的语言生成多种list。

nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
my_list = [] # 01---I want 'n*n' for each 'n' in nums
# 传统方式
# for n in nums:
# my_list.append(n)
# 生成式
my_list = [n*n for n in nums]
print my_list
# result : [1, 4, 9, 16, 25, 36, 49, 64, 81, 100] # 02---I want 'n' for each 'n' in nums if 'n' is even
# 传统方式
#for n in nums:
# if n%2 == 0:
# my_list.append(n)
# 生成式
my_list = [n for n in nums if n%2==0]
print my_list
# result : [2, 4, 6, 8, 10] # 03--- I want a (letter, num) pair for each letter in "abc" and each num in "012"
#传统方式
#for letter in 'abc':
# for num in range(3)
# my_list.append((letter,num))
# 生成式
my_list = [(letter, num) for letter in 'abc' for num in range(3)]
print my_list
# result :[('a', 0), ('a', 1), ('a', 2), ('b', 0), ('b', 1), ('b', 2), ('c', 0), ('c', 1), ('c', 2)] # Dictionary Comprehensions
names = ['Bruce', 'Clark', 'Peter']
heros = ['Batman', 'Superman', 'Spiderman'] # I want a dict{'name':'hero'} for each name, hero in zip(name, heros)
# 传统方式
my_dict = {}
#for name, hero in zip(names, heros):
# my_dict[name] = hero
# 生成式 注意为大括号
my_dict = {name: hero for name, hero in zip(names, heros)}
print my_dict
# result : {'Bruce': 'Batman', 'Peter': 'Spiderman', 'Clark': 'Superman'} # Set Comprehensions
nums = [1, 1, 2, 3, 3, 4, 5 ]
# 生成式 注意为大括号
my_set = {n for n in nums}
print my_set
# result set([1, 2, 3, 4, 5])

Python基础知识--Slice(切片)和Comprehensions(生成式)的更多相关文章

  1. Python基础(slice切片)

    l = ['傻狗1','傻狗2','傻狗3','傻狗4','傻狗5','傻狗6'] print(l[0:3])#['傻狗1', '傻狗2', '傻狗3'] numbers = list(range(1 ...

  2. python基础知识小结-运维笔记

    接触python已有一段时间了,下面针对python基础知识的使用做一完整梳理:1)避免‘\n’等特殊字符的两种方式: a)利用转义字符‘\’ b)利用原始字符‘r’ print r'c:\now' ...

  3. Python开发【第二篇】:Python基础知识

    Python基础知识 一.初识基本数据类型 类型: int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483647 在64位 ...

  4. Python基础知识(五)

    # -*- coding: utf-8 -*-# @Time : 2018-12-25 19:31# @Author : 三斤春药# @Email : zhou_wanchun@qq.com# @Fi ...

  5. Python基础知识(四)

    Python基础知识(四) 一丶列表 定义格式: 是一个容器,由 [ ]表示,元素与元素之间用逗号隔开. 如:name=["张三","李四"] 作用: 存储任意 ...

  6. python基础知识(二)

    以下内容,作为python基础知识的补充,主要涉及基础数据类型的创建及特性,以及新数据类型Bytes类型的引入介绍

  7. python 基础知识(一)

    python 基础知识(一) 一.python发展介绍 Python的创始人为Guido van Rossum.1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本 ...

  8. python基础知识讲解——@classmethod和@staticmethod的作用

    python基础知识讲解——@classmethod和@staticmethod的作用 在类的成员函数中,可以添加@classmethod和@staticmethod修饰符,这两者有一定的差异,简单来 ...

  9. python爬虫主要就是五个模块:爬虫启动入口模块,URL管理器存放已经爬虫的URL和待爬虫URL列表,html下载器,html解析器,html输出器 同时可以掌握到urllib2的使用、bs4(BeautifulSoup)页面解析器、re正则表达式、urlparse、python基础知识回顾(set集合操作)等相关内容。

    本次python爬虫百步百科,里面详细分析了爬虫的步骤,对每一步代码都有详细的注释说明,可通过本案例掌握python爬虫的特点: 1.爬虫调度入口(crawler_main.py) # coding: ...

随机推荐

  1. OA电子表单设计-年假申请单-数据验证

    OA从年初上线到现在已经过去半年了,时光飞逝. 上月底,行政文员找到我,说最近有新来的部门文员填<年假申请单>时,有乱填的情况,让我想办法处理. 我一查还真是,这文员是个男的,同一天给同一 ...

  2. Sort函数的用法

    快速排序sort的用法:(适用于int float double char ...) 记得加头文件! 记得加头文件! 记得加头文件! 头文件: #include <algorithm>   ...

  3. lianxi

    package dududu; public class qiqiqi { public static void main(String[] args) { // TODO 自动生成的方法存根 ; ; ...

  4. 面试准备之一Python

    基本数据类型 函数 模块与包 面向对象 网络编程 垃圾回收机制 G 并发编程

  5. Android Studio最新稳定版下载 - 百度网盘(更新于2017年7月14日)

    Android Studio是一个为Android平台开发程序的集成开发环境,其包含用于构建Android应用所需的所有工具.Android Studio 2.3.3为最新稳定版(截止到2017年7月 ...

  6. ping外网

    /** * @author suncat * @category 判断是否有外网连接(普通方法不能判断外网的网络是否连接,比如连接上局域网) * @return */ public static fi ...

  7. mac apache服务器

    //开启apache: sudo apachectl start //重启apache: sudo apachectl restart //关闭apache: sudo apachectl stop ...

  8. DEV控件之ChartControl用法 z

    一.总体概述 这个控件包含3层,最外面的chartControl层.中间的XYDiagram层.最里面的Series层.功能非常强大,但同时使用起来也相对复杂,需要各个层之间相互协调设置才能达到自己想 ...

  9. https填坑之旅

    Boss说,我们买了个权威证书,不如做全站式的https吧,让用户打开主页就能看到受信任的绿标.于是我们就开始了填坑之旅. [只上主域好不好?] 不好...console会报出一大堆warning因为 ...

  10. Android Studio添加取消代码注释快捷键

    经常需要注释,取消注释代码 Ctrl + /       对每段代码前面添加或者取消 // Ctrl + Shift + /   对代码添加 或取消 /* */ Ctrl + B     查找定义 C ...