| Apr | MAY | Jun |
| 09 | ||
| 2021 | 2022 | 2023 |
COLLECTED BY
Formed in 2009, the Archive Team (not to be confused with the archive.org Archive-It Team) is a rogue archivist collective dedicated to saving copies of rapidly dying or deleted websites for the sake of history and digital heritage. The group is 100% composed of volunteers and interested parties, and has expanded into a large amount of related projects for saving online and digital history.
History is littered with hundreds of conflicts over the future of a community, group, location or business that were "resolved" when one of the parties stepped ahead and destroyed what was there. With the original point of contention destroyed, the debates would fall to the wayside. Archive Team believes that by duplicated condemned data, the conversation and debate can continue, as well as the richness and insight gained by keeping the materials. Our projects have ranged in size from a single volunteer downloading the data to a small-but-critical site, to over 100 volunteers stepping forward to acquire terabytes of user-created data to save for future generations.
The main site for Archive Team is at archiveteam.org and contains up to the date information on various projects, manifestos, plans and walkthroughs.
This collection contains the output of many Archive Team projects, both ongoing and completed. Thanks to the generous providing of disk space by the Internet Archive, multi-terabyte datasets can be made available, as well as in use by the Wayback Machine, providing a path back to lost websites and work.
Our collection has grown to the point of having sub-collections for the type of data we acquire. If you are seeking to browse the contents of these collections, the Wayback Machine is the best first stop. Otherwise, you are free to dig into the stacks to see what you may find.
The Archive Team Panic Downloads are full pulldowns of currently extant websites, meant to serve as emergency backups for needed sites that are in danger of closing, or which will be missed dearly if suddenly lost due to hard drive crashes or server failures.
Collection: Archive Team: URLs
e4d0695
# Create a list and iterate over it numbers = [] numbers.append(1) numbers.append(2) numbers.append(3) for num in numbers: print(num) ''' 1 2 3 '''
# Create a list and iterate over it numbers = [1, 2, 3] length = len(numbers) for i in range(length): print(numbers[i]) # Output ''' 1 2 3 '''
# Modify values in a list numbers = [1, 2, 3] for i in range(len(numbers)): numbers[i] += 1 print(numbers) ''' [2, 3, 4] '''
# Sort a list in-place in ascending order a = [2, 4, 1, 9, 8] a.sort() print(a) ''' [1, 2, 4, 8, 9] '''
# Sort a list in-place in descending order a = [2, 4, 1, 9, 8] a.sort(reverse = True) print(a) ''' [9, 8, 4, 2, 1] '''
# Declare a string and iterate over the characters string = 'Hello' for c in string: print(c) ''' H e l l o '''
# Declare a string and iterate over the characters string = 'Hello' for i in range(len(string)): print(string[i]) ''' H e l l o '''
# Modifying a string string = 'hello' string[0] = 'H' ''' TypeError: 'str' object does not support item assignment '''
# Sort a string s = 'shivam' sorted_s = ''.join(sorted(s)) print(sorted_s) ''' ahimsv '''
# Declare a tuple and iterate over it vowels = ('a', 'e', 'i', 'o', 'u') for v in vowels: print(v) ''' a e i o u '''
# Declare a tuple and print elements vowels = ('a', 'e', 'i', 'o', 'u') print(vowels[0]) print(vowels[2]) print(vowels[-1]) ''' a i u '''
# Modify a tuple vowels = ('a', 'e', 'i', 'o', 'u') vowels[0] = 'b' ''' TypeError: 'tuple' object does not support item assignment '''
# Declare a dictionary and print key value pairs d = {'1': 'Dhoni', '2': 'Sachin', '3': 'Dravid'} for k,v in d.items(): print(k,v) ''' 1 Dhoni 2 Sachin 3 Dravid '''
# Dynamically insert key values and print it d = {} # Store square of numbers from 1 to 5 for i in range(1, 6): d[i] = i*i # Print the square for k,v in d.items(): print(k,v) # Output ''' 1 1 2 4 3 9 4 16 5 25 '''
# Declare a set, insert values and print it s = set() s.add(1) s.add(4) s.add(3) s.add(1) print(s) ''' {1, 3, 4} '''
# Declare a 2D list N = 5 M = 5 matrix = [0]*N for i in range(N): col = [0]*M matrix[i] = col print(matrix) ''' [[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]] '''
# Declare a 2D list N = 5 M = 5 matrix = [[0 for j in range(M)] for i in range(N)] print(matrix) ''' [[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]] '''
# Declare a 2D list N = 5 M = 5 matrix = [[0]*M for i in range(N)] print(matrix) ''' [[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]] '''
# Modify the values in a 2D list matrix = [[0]*4 for i in range(3)] for i in range(3): for j in range(4): matrix[i][j] += 1 print(matrix) ''' [[1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1]] '''
# Operations on deque from collections import deque dq = deque([]) dq.append(1) dq.append(2) dq.appendleft(3) dq.appendleft(4) print(dq) print(dq.pop()) print(dq.popleft()) ''' deque([4, 3, 1, 2]) 2 4 '''
# Implement queue using deque from collections import deque q = deque([]) q.append(1) q.append(2) q.append(3) print(q) print(q.popleft()) print(q.popleft()) ''' deque([1, 2, 3]) 1 2 '''
# Implement queue using Queue from queue import Queue q = Queue() q.put(1) q.put(2) q.put(2) print(q.qsize()) print(q.get()) print(q.get()) print(q.qsize()) ''' 3 1 2 1 '''
# Implement stack using list stack = [] stack.append(1) stack.append(2) stack.append(3) print(stack) print(stack.pop()) print(stack.pop()) print(stack) ''' [1, 2, 3] 3 2 [1] '''
# Implement stack using deque from collections import deque stack = deque([]) stack.append(1) stack.append(2) stack.append(3) print(stack) print(stack.pop()) print(stack.pop()) print(stack) ''' deque([1, 2, 3]) 3 2 deque([1]) '''
# Operations on ordereddict from collections import OrderedDict d = OrderedDict() d[1] = 2 d[2] = 3 d[3] = 4 # If we print the dictionary now, the keys will be printed in order of insertion. for k,v in d.items(): print(k,v) print(d.popitem(last=False)) print(d.popitem()) ''' 1 2 2 3 3 4 (1, 2) (3, 4) '''
# Operations on defaultdict from collections import defaultdict numbers = [1, 1, 2, 5, 2, 8] d = defaultdict(int) for num in numbers: d[num] += 1 for k,v in d.items(): print(k, v) ''' 1 2 2 2 5 1 8 1 '''
from collections import Counter numbers = [1, 1, 2, 5, 2, 8] cntr = Counter(numbers) for k,v in cntr.items(): print(k, v) ''' 1 2 2 2 5 1 8 1 '''
from collections import namedtuple Point = namedtuple('Point', ['x', 'y']) p1 = Point(1, 2) print(p1.x, p1.y) ''' 1 2 '''
# Min heap usage import heapq L = [] heapq.heapify(L) # Min heap heapq.heappush(L, 3) # Pushing 3 into heap heapq.heappush(L, 2) # Pushing 2 into heap print(L) print(heapq.heappop(L)) # Popping the minimum element print(L) ''' [2, 3] 2 [3] '''
# Check if an elements is present or not and return the index if element is present from bisect import bisect_left a = [1, 2, 4, 4, 5] x = 4 idx = bisect_left(a, x) if idx != len(a) and a[idx] == x: print(f'{x} is present at index {idx}') else: print('Element not found') ''' 4 is present at index 2 '''
# Find index of first element greater than or equal to target(x) from bisect import bisect_left a = [1, 2, 4, 4, 5] x = 6 idx = bisect_left(a, x) if idx == len(a): print('All elements are smaller than the target element') else: print(idx) ''' All elements are smaller than the target element '''
# Find index of first element greater than target(x) from bisect import bisect_right a = [1, 2, 4, 4, 5] x = 4 idx = bisect_right(a, x) if idx == len(a): print('All elements are smaller than the target element') else: print(idx) ''' 4 '''
# Create a singly linked list and traverse it class Node: def __init__(self, data): self.data = data self.next = None class LinkedList: def __init__(self): self.head = None def insert_at_end(self, data): new_node = Node(data) if self.head is None: self.head = new_node else: temp = self.head while(temp.next): temp = temp.next temp.next = new_node def traverse(self): temp = self.head while(temp): print(temp.data) temp = temp.next ll = LinkedList() ll.insert_at_end(1) ll.insert_at_end(2) ll.insert_at_end(3) ll.traverse() ''' 1 2 3 '''
# Create a binary tree and traverse it class Node: def __init__(self, data): self.data = data self.left = None self.right = None root = Node(1) root.left = Node(2) root.right = Node(3) root.left.left = Node(4) root.right.left = Node(5) # Binary tree created from the above code ''' 1 / \ 2 3 / \ 4 5 ''' def inorder(root): if not root: return print(root.data) inorder(root.left) inorder(root.right) inorder(root) ''' 1 2 4 3 5 '''
# Create a graph and traverse it from collections import defaultdict graph = defaultdict(list) graph[1].append(2) # 1 ->2 graph[2].append(3) # 1 -> 2 ->3 graph[4].append(1) # 4 -> 1 -> 2 ->3 visited = set() def dfs(node, graph, visited): if node not in visited: print(node) visited.add(node) for v in graph[node]: dfs(v, graph, visited) dfs(4, graph, visited) ''' 4 1 2 3 '''