1. Для объявления переменной до ее использования в функции в Python можно просто создать эту переменную в глобальной области видимости или внутри другой функции, которая вызывает функцию, где эта переменная будет использоваться. Например:
```python
my_variable = 10
def my_function():
print(my_variable)
my_function()
```
2. Чтобы заполнить список `list1`, который находится в глобальной области видимости, из функции `func1()`, можно использовать ключевое слово `global`, чтобы указать, что переменная `list1` используется из глобальной области видимости. Вот пример:
```python
list1 = []
def func1():
global list1
list1.append(1)
list1.append(2)
func1()
print(list1) # Результат: [1, 2]
```
Этот код заполнит список `list1` из функции `func1()` и после вызова функции `func1()`, список `list1` будет содержать `[1, 2]`.