
Index: django/template/defaultfilters.py
===================================================================
--- django/template/defaultfilters.py   (revision 2928)
+++ django/template/defaultfilters.py   (working copy)
@@ -246,6 +246,13 @@
     "Returns a random item from the list"
     return random_module.choice(value)

+def get(value, arg):
+    "Returns an item from an idexable item"
+    try:
+        return value[arg]
+    except LookupError:
+        return value # Fail silently.
+
 def slice_(value, arg):
     """
     Returns a slice of the list.
@@ -473,6 +480,7 @@
 register.filter(removetags)
 register.filter(random)
 register.filter(rjust)
+register.filter(get)
 register.filter('slice', slice_)
 register.filter(slugify)
 register.filter(stringformat)
Index: tests/othertests/defaultfilters.py
===================================================================
--- tests/othertests/defaultfilters.py  (revision 2928)
+++ tests/othertests/defaultfilters.py  (working copy)
@@ -173,6 +173,30 @@
 >>> length_is('a', 10)
 False

+>>> get([1, 2, 3], 0)
+1
+
+>>> get([1, 2, 3], 1)
+2
+
+>>> get([1, 2, 3], 2)
+3
+
+>>> get([1, 2, 3], 3)
+[1, 2, 3]
+
+>>> get({'a': 1, 'c': 3, 'e': 5}, 'a')
+1
+
+>>> get({'a': 1, 'c': 3, 'e': 5}, 'c')
+3
+
+>>> get({'a': 1, 'c': 3, 'e': 5}, 'e')
+5
+
+>>> get({'a': 1, 'c': 3, 'e': 5}, 'g')
+{'a': 1, 'c': 3, 'e': 5}
+
 >>> slice_('abcdefg', '0')
 ''
