Python Numpy Tutorial: 列表

1.

# -*- coding: utf-8 -*-
"""
Python Version: 3.5
Created on Sun May  7 23:12:00 2017
E-mail: Eric2014_Lv@sjtu.edu.cn
@author: DidiLv
"""

# 首先声明list 列表是一个可变的容器
xs = [3, 1, 2]   # Create a list
print(xs, xs[2])  # Prints "[3, 1, 2] 2"
print(xs[-1])     # 负数输出是按照倒叙输出 prints "2"
print(xs[-2])
#print(xs[-5])
xs[2] = 'foo'    # Lists can contain elements of different types
print(xs)         # Prints "[3, 1, 'foo']"
xs.append('bar') # Add a new element to the end of the list
print(xs)         # Prints "[3, 1, 'foo', 'bar']"
x = xs.pop()     # 移除并返回最后一个元素
print(x, xs)      # Prints "bar [3, 1, 'foo']"

2.

# -*- coding: utf-8 -*-
"""
Python Version: 3.5
Created on Sun May  7 23:19:39 2017
E-mail: Eric2014_Lv@sjtu.edu.cn
@author: DidiLv
"""

nums = range(5) #记住range函数返回只是一个迭代器真正生成需要list来生成,这是跟python2的区别
print(nums)
print(list(nums))
print(list(nums[2:4]), "\n", list(nums[2:]), "\n", list(nums[:2]))
print(list(nums[:-2])) # 从后面删掉两个然后输出
print(list(nums))
nums_list = list(range(7))
print(nums_list)
print(list(nums_list))
print(nums_list[2:6], "\n", nums_list[3:], "\n", nums_list[:6])
print(nums_list[:-2]) # 从后面删掉两个然后输出
nums_list[2:4] = [8, 1000, 9] #这里的nums_list是一个真正的list从而可以随便的更改
print(nums_list)

输出:

range(0, 5)
[0, 1, 2, 3, 4]
[2, 3] 
 [2, 3, 4] 
 [0, 1]
[0, 1, 2]
[0, 1, 2, 3, 4]
[0, 1, 2, 3, 4, 5, 6]
[0, 1, 2, 3, 4, 5, 6]
[2, 3, 4, 5] 
 [3, 4, 5, 6] 
 [0, 1, 2, 3, 4, 5]
[0, 1, 2, 3, 4]
[0, 1, 8, 1000, 9, 4, 5, 6]

2.

# -*- coding: utf-8 -*-
"""
Python Version: 3.5
Created on Sun May  7 23:36:49 2017
E-mail: Eric2014_Lv@sjtu.edu.cn
@author: DidiLv
"""

# list是一个可迭代的容器
animals = ['cat', 'dog', 'monkey']
for animal in animals:
    print(animal)

animals = ['cat', 'dog', 'monkey']
# 输出index要用enumerate()函数
for i, animal in enumerate(animals):
    print('#%d: %s' % (i + 1, animal))

# 转化数据 1: for循环   
nums = [0, 1, 2, 3, 4]
squares = []
for x in nums:
    squares.append(x ** 2) #一个一个添加
print(squares)   # Prints [0, 1, 4, 9, 16]
# 转化数据 2: 列表解析
squares_list = [x ** 2 for x in nums]
print(squares_list)

# 列表解析用处很大,再列出一个超级叼的二分归并程序最简版
def quicksort(arr):
    if len(arr) <= 1:
        return arr   
    return quicksort([x for x in arr if x < arr[int(len(arr) / 2)]]) + [x for x in arr if x == arr[int(len(arr) / 2)]] + quicksort([x for x in arr if x > arr[int(len(arr) / 2)]])

print(quicksort([3,6,8,10,1,2,1]))

输出:

cat
dog
monkey
#1: cat
#2: dog
#3: monkey
[0, 1, 4, 9, 16]
[0, 1, 4, 9, 16]
[1, 1, 2, 3, 6, 8, 10]

求问:谁能将此代码再减少一行甚至更多,因为我感觉if判断长度为1时候可以继续减少

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值