In regular python array, a slice view of an array is actually a copy. Modifiying elements through the slice won't affect the original array.
>>> arr = [0, 1, 2]
>>> arr[0:][0] = 100
>>> arr
[0, 1, 2]
In regular python array, a slice view of an array is actually a copy. Modifiying elements through the slice won't affect the original array.
>>> arr = [0, 1, 2]
>>> arr[0:][0] = 100
>>> arr
[0, 1, 2]
// TODO: update the API key | |
private let apiKey: String = "c8707b3709a34bbe90837f63c71537ed" | |
private let path: String = "https://newsapi.org/v2/top-headlines?apiKey=\(apiKey)&country=us" | |
enum ClientError: Error { | |
case missingResponseData | |
} | |
class NewsClient { | |
func headlines() -> Single<ArticlesResponse> { |
import numpy as np | |
def read_obj(filename): | |
triangles = [] | |
vertices = [] | |
with open(filename) as file: | |
for line in file: | |
components = line.strip(' \n').split(' ') | |
if components[0] == "f": # face data | |
# e.g. "f 1/1/1/ 2/2/2 3/3/3 4/4/4 ..." | |
indices = list(map(lambda c: int(c.split('/')[0]) - 1, components[1:])) |
vertices, triangles = read_obj("teapot.obj") | |
x = vertices[:,0] | |
y = vertices[:,1] | |
z = vertices[:,2] | |
ax = plt.axes(projection='3d') | |
ax.set_xlim([-3, 3]) | |
ax.set_ylim([-3, 3]) | |
ax.set_zlim([0, 3]) | |
ax.plot_trisurf(x, z, triangles, y, shade=True, color='white') |
extension ViewController: UITableViewDataSource { | |
func numberOfSections(in tableView: UITableView) -> Int { | |
return 1 | |
} | |
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { | |
return articles.count | |
} | |
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { |
extension ViewController: UITableViewDelegate { | |
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { | |
let article = articles[indexPath.row] | |
present(SFSafariViewController(url: article.url), animated: true, completion: nil) | |
} | |
} |
import UIKit | |
import RxSwift | |
import SafariServices | |
class ViewController: UIViewController { | |
private let disposeBag = DisposeBag() | |
private let client = NewsClient() | |
private var articles: [Article] = [] | |
import Foundation | |
class Article: Decodable { | |
let title: String | |
let description: String? | |
let url: URL | |
let urlToImage: String? | |
let content: String? | |
} |
import UIKit | |
import RxSwift | |
class ViewController: UIViewController { | |
private let disposeBag = DisposeBag() | |
private let client = NewsClient() | |
override func viewDidLoad() { | |
super.viewDidLoad() | |
client.headlines().subscribe(onSuccess: { (response) in |
import UIKit | |
class NewsTableViewCell: UITableViewCell { | |
let titleLabel: UILabel = { | |
let lable = UILabel() | |
lable.translatesAutoresizingMaskIntoConstraints = false | |
lable.numberOfLines = 3 | |
lable.font = UIFont.systemFont(ofSize: 14) | |
return lable |