最近在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. 《Visual C++ 2010入门教程》系列五:合理组织项目、使用外部工具让工作更有效

    原文:http://www.cnblogs.com/Mrt-02/archive/2011/07/24/2115631.html 这一章跟大家分享一些与c++项目管理.VAX.SVN.VS快捷键等方面 ...

  2. 十五、css3 Filter--滤镜

    如何实现下图的效果-—这里就用到了滤镜 给灰色弹框这个标签元素加“伪类”如下: #nearStoreContent .popChoose li:before { 1. z-index:; 2. pos ...

  3. libgdx for eclipse开发环境搭建

    1.安装jdk1.7以上 2.下载libgdx1.2.0 下载地址:https://libgdx.badlogicgames.com/releases 3.下载项目创建工具(老版本的) 下载地址:ht ...

  4. 在Visualsvn Server上创建svn账号和密码

    VisualSVN Server是一个集成的svn服务端工具,是一款svn服务端不可多得的好工具.可以先安装好VisualSVN Server后,运行VisualSVN Server Manger,然 ...

  5. 【Leetcode】【Medium】Best Time to Buy and Sell Stock II

    Say you have an array for which the ith element is the price of a given stock on day i. Design an al ...

  6. Elasticsearch.yml

    cluster.name: elasticsearch配置es的集群名称,默认是elasticsearch,es会自动发现在同一网段下的es,如果在同一网段下有多个集群,就可以用这个属性来区分不同的集 ...

  7. mvc:view-controller 标签

    一.SpringMVC 会把ModelAndView 的model中的数据放到request 域中 二.如果不想让请求经过任何handler,而直接响应页面,可以使用 mvc:view-control ...

  8. JQuery获取和设置Select选项的常用方法总结

    1.获取select 选中的 text:  $("#cusChildTypeId").find("option:selected").text();  $(&q ...

  9. Yii中的relations方法

    以Blog示例: 重点看注释 User类中的relations方法如下 <span style="font-size:18px;background-color: rgb(255, 2 ...

  10. Linux学习总结(一) windos环境vmware安装centos7

    一.在这里我先简单介绍下虚拟化技术[即在一台电脑上虚拟出子系统,而且可能需要多台服务器进行工作,一般都是linux系统做服务器或者学习研究之用], 二来我们可以有效利用一台pc的资源模拟出终端远程访问 ...