Skip to content

Instantly share code, notes, and snippets.

@topiaruss
Created September 26, 2019 19:16
Show Gist options
  • Save topiaruss/70ae8365035940541ec43165f0c982d6 to your computer and use it in GitHub Desktop.
Save topiaruss/70ae8365035940541ec43165f0c982d6 to your computer and use it in GitHub Desktop.
Understanding the streets of Barry
"""
Based on a FB post that wanted streets names of Barry, starting with Gladstone Road, with each successive street
starting with the terminal letter of the previous one.
"""
streets = """
Aberaeron Close
Aberystwyth Crescent
Abingdon Street
Adar Y Mor
Ael-y-coed
Aeron Close
Afal Sur
Afan Close
Albert Street
Alexandra Crescent
Alwen Drive
Amherst Crescent
Amroth Court
Andover Close
Aneurin Road
Angle Close
Ar Y Nant
Archer Road
Arden Way
Arno Road
Arthur Street
Ash Grove
Atlantic Crescent
Atlantic Place
Atlantic Way
Balmoral Court
Barrians Way
Barry Docks Link Road
Barry Road
Bassett Street
Bastian Close
Beachway
Beatrice Road
Beatty Close
Beaumont Close
Bedlington Terrace
Beidr Iorwg
Bell Street
Belle Vue Terrace
Belmont Street
Belvedere Crescent
Bendrick Road
Beryl Place
Beryl Road
Beverley Street
Birch Grove
Blackberry Drive
Blackwell Close
Blenheim Close
Blodyn Y Gog
Blyth Close
Boon Close
Borough Avenue
Bramble Avenue
Breaksea Drive
Brecon Court
Brenig Close
Bridge Street
Broad Close
Broad Street
Broad Street
Broad Street
Brock Street
Bromfield Road
Bron Awelon
Bron-y-mor
Brook Street
Brookfield Avenue
Broughton Place
Brunel Close
Brynhill Close
Buckingham Place
Bull Cliff Walk
Burlington Street
Burns Crescent
Butterills Road
Buttrills Close
Buttrills Road
Buttrills Walk
Byron Street
Cadoc Crescent
Cae Glas
Cae Leon
Caer Ffynnon
Caldy Close
Cambourne Close
Cambridge Street
Camrose Court
Canon Street
Caple Road
Caradoc Avenue
Cardiff Road
Cardiff Road
Carew Close
Carn-yr-ebol
Castle Street
Castleland Street
Cawley Place
Cei Dafydd
Ceiriog Close
Cemetery Road
Cennin Pedr
Charles Darwin Way
Charles Place
Charlotte Place
Charter Avenue
Chaucer Road
Chesterfield Street
Chilcote Street
Church Road
Churchfields
Claude Road
Claude Road West
Cledwen Close
Clement Place
Cliff Wood View
Clifton Street
Clive Place
Clive Road
Clos Cefni
Clos Celyn
Clos Cwm Barri
Clos Llawhaden
Clos Mancheldowne
Clos Peiriant
Clos Tawe
Clos Tyniad Glo
Clos Yr Harbwr
Clos Yr Wylan
Coed Bach
Coed Criafol
Coed Mawr
Coed Y Capel
Coed-y-felin
Coigne Terrace
Colcot Road
Colcot Road
Cold Knap Way
Coldbrook Close
Coldbrook Road East
Coldbrook Road West
Coleridge Crescent
Collard Crescent
College Fields Close
College Place
College Road
College Road
Columbus Close
Commercial Road
Conway Drive
Cook Road
Cora Street
Corn Glas
Cornwall Rise
Cornwall Road
Coronation Street
Cory Way
Cotswold Rise
Cottrell Square
Court Road
Court Road
Courtenay Road
Cowbridge Street
Coychurch Rise
Cresswell Court
Cross Street
Crossfield Road
Crosshill
Crossways Street
Crwys Lane
Cudd Y Coed
Cwlwm Cariad
Cwm Barry Way
Cwm Ciddy Lane
Cwm Parc
Cwrt Aethen
Cwrt Dyfed
Cwrt Edward
Cwrt Eirlys
Cwrt Pencoedtre
Cynan Close
Cyril Street
Dafydd Place
Dale Court
Daniel Street
Dannog Y Coed
David Davies Road
David Street
Davies Street
Dawan Close
Devon Avenue
Digby Street
Dingle Close
Dobbins Road
Dock Road
Dock View Road
Dorothy Avenue
Dorothy Close
Dorset Avenue
Dovedale Street
Dovey Close
Dryden Terrace
Dudley Place
Dunraven Street
Dyfan Road
Dyffryn Place
Dyfnallt Road
Dyfrig Street
Dylan Crescent
Earl Crescent
East Street
East View Terrace
East Walk
Edmund Place
Edward Street
Eifion Close
Eithinen Ber
Elan Close
Elfed Way
Elizabeth Avenue
Elm Grove
Enfield Drive
Esgid Mair
Eton Street
Evans Street
Evelyn Street
Everard Street
Ewbank Close
Ewenny Close
Fairford Street
Falcon Road
Felin Lon Fferm
Fern Drive
Ffordd Cwm Cldl
Ffordd Elin
Ffordd Gwyneth
Ffordd Sealand
Ffordd Y Mileniwm
Fforest Drive
Field View Road
Florence Avenue
Foster Street
Fouracres Close
Francis Road
Friars Road
Friars Road
Fryatt Street
Gadlys Road East
Gadlys Road West
Gaen Street
Gaspard Place
Gateholm Close
Gelyn-y-cler
George Street
Geraint Place
Gerddi Margaret
Gibbonsdown Close
Gibbonsdown Rise
Gilbert Street
Gladstone Bridge
Gladstone Road
Gladstone Road
Glamorgan Street
Glan-y-mor
Glanfa Dafydd
Glanmore Crescent
Glas Y Llwyn
Glaslyn Close
Glebe Street
Glen Afric Close
Glen Mavis Way
Glenbrook Close
Glenbrook Drive
Glencoe Street
Gloucester Close
Glynbridge Close
Glyndwr Road
Goldsland Place
Goodwick Close
Gradon Close
Green Lane
Green Lawns
Greenacres
Greenbanks Drive
Greenfield Road
Greenway Court
Greenwood Street
Griffin Close
Guthrie Street
Guy's Road
Gwalch Y Penwaig
Gwenllian Street
Gwennol Y Craig
Gwennol Y Mor
Gwilym Place
Hafren Road
Hannah Street
Hanover Street
Harbour Road
Harbour Road
Hardy Close
Harlech Gardens
Harvey Street
Hawthorn Road
Hayes Lane
Hayes Road
Hazledene Close
Heathfield Drive
Hebbles Lane
Hellas Drive
Henry Street
Heol Broadland
Heol Ceiniog
Heol Cilffrydd
Heol Dewi Sant
Heol Eryr Mor
Heol Fioled
Heol Gorswigen
Heol Gwendoline
Heol Gwerthyd
Heol Gylfinir
Heol Leubren
Heol Miaren
Heol Moor
Heol Pantycelyn
Heol Sirhwi
Heol Y Llongau
Heol-y-bryn
Heol-y-gaer
Heol-y-nant
Heoly Porthladd
Herbert Street
Heritage Drive
High Street
Highfield Road
Highlight Lane
Hilda Street
Hill Street
Hillary Rise
Hillside Close
Hinchsliff Avenue
Holland Way
Hollyrood Close
Holmes Street
Holton Road
Holton Road
Hood Road
Howard Court
Hunt Place
Hunter Street
Hywel Crescent
Ilminster Close
Ilminster Street
Iolo Place
Irving Place
Island Road
Islwyn Way
Ivor Street
James Street
Jenkin Street
Jenner Road
Jenner Street
Jewel Street
John Street
Jubilee Gardens
Kathleen Street
Keats Way
Kendrick Road
Kenilworth Road
Kennedy Rise
Kent Green
Kingsland Crescent
Knap Car Terrace
Laburnum Close
Lakeside
Lakin Drive
Laleston Close
Langlands Road
Laugharne Court
Laura Street
Lee Road
Lewis Street
Lidmore Road
Liscum Way
Little Brynhill Lane
Little Moors Hill
Llandinam Road
Llanover Street
Llantwit Street
Llewellyn Street
Lloyd Avenue
Llwyn David
Llys Gwent
Llys Y Coed
Lombard Street
Lon Fferm Felin
Long Meadow Drive
Longacre Close
Lowdon Terrace
Lower Guthrie Street
Lower Holmes Street
Lower Morel Street
Lower Pyke Street
Lucas Close
Lydstep Road
Maes Glas
Maes-y-coed
Maes-y-cwm Street
Maes-yr-ysgol
Magellan Close
Main Street
Manorbier Court
Maple Close
Margaret Avenue
Marine Drive
Market Street
Marlborough Close
Marloes Close
Marquis Close
Mcquade Place
Meadow Vale
Meadow View
Meggitt Road
Meirion Close
Melrose Street
Melville Close
Melyn Y Gors
Mendip View
Merganser Court
Merlin Place
Merthyr Dyfan Road
Merthyr Street
Michaelston Close
Millwood Rise
Milton Road
Milward Road
Min-y-mor
Minster Close
Miskin Street
Monmouth Way
Montgomery Road
Morel Street
Morgan Street
Morlais Street
Morningside Walk
Mount Pleasant
Mountbatten Road
Moxon Street
Munro Place
Myrtle Grove
Nant Talwg Way
Narbeth Court
Neale Street
Nelson Road
Newgale Close
Newlands Street
Newton Street
Neyland Court
Nordale Rise
North Walk
Northcote Terrace
Norwood Crescent
O'donnell Road
Oakfield Road
Oban Street
Ogmore Place
Old Village Road
Oldmill Road
Orchard Drive
Owens Close
Oxford Street
Paddock Place
Paget Road
Paget Road
Palmer Street
Palmerston Road
Pardoe Crescent
Park Avenue
Park Avenue
Park Crescent
Park Road
Pearce Court
Pen-y-bryn
Pencoedtre Road
Pendine Close
Pendoylan Close
Peterswell Road
Philadelphia Close
Phyllis Street
Pioden For
Plas Cleddau
Plas Gwernen
Pleasant View
Plymouth Road
Poets Field Road
Pontalun Close
Pontypridd Road
Pontypridd Road
Pontypridd Street
Poplar Court
Port Mews
Port Road
Port Road
Port Road East
Port Road East
Port Road West
Port Road West
Porth-y-castell
Porthkerry Road
Powell Duffryn Way
Powis View
Price Avenue
Princes Street
Priory Gardens
Proctor Close
Promenade
Purdey Close
Pyke Street
Quarella Street
Queen Street
Queens Way
Raldan Close
Ramsey Road
Ravenshoe Road
Rectory Road
Redberth Close
Redbrink Crescent
Regent Street
Rheidol Drive
Rhodfa Felin
Rhodfa Sweldon
Rhodfa'r Gwagenni
Richard Street
Ridgeway Road
Riverside Place
Robert Street
Robins Lane
Romilly Avenue
Romilly Park Road
Romilly Road
Runcorn Close
Ruthen Terrace
Rutland Close
Salisbury Road
Sandringham Close
Sea View Terrace
Sealawns
Senni Close
Severn Avenue
Shakespeare Road
Shelley Crescent
Sherbourne Close
Shirley Close
Skomer Road
Slade Road
Solent Road
Solva Close
Somerset Road
Somerset Road East
South Walk
Southesk Place
Southey Street
Spencer Street
Spires Walk
Spring Street
Springfield Rise
St Andrew's Road
St Ann's Court
St Brannocks Close
St Bride's Way
St Cadoc's Rise
St Catherine's Court
St Fagans Avenue
St Govan's Close
St James Crescent
St Julian Close
St Lythan's Road
St Mary's Avenue
St Michaels Gardens
St Nicholas Court
St Nicholas' Road
St Oswald's Road
St Paul's Avenue
St Teilo Avenue
Station Approach Road
Station Street
Stirling Road
Stradling Close
Subway Road
Sully View
Suran-y-gog
Swn-y-mor
Sycamore Crescent
Taf Close
Tan-y-fron
Teifi Drive
Tennyson Road
Tensing Terrace
The Crescent
The Grove
The Heathers
The Parade
The Pastures
Thistle Close
Thompson Street
Tordoff Way
Treharne Road
Trem Mapgoll
Trem Powys
Trem Y Coed
Trem-y-don
Trinity Street
Ty-newydd Road
Tydfil Street
Usk Way
Vale Street
Vale View
Vere Street
Verlon Close
Viaduct Road
Victoria Park Road
Victoria Road
Vincent Close
Walker Road
Warwick Way
Watson Street
Waycock Road
Waycock Road
Welford Street
Well Walk
Wenvoe Terrace
Wessex Place
West Walk
Westbury Close
Weston Square
Weston Street
Westward Rise
White House
Whitewell Road
Whitmore Park Drive
Wilfred Street
Williams Crescent
Willows Crescent
Wimborne Road
Windsor Road
Winifred Avenue
Winston Road
Wolfe Close
Woodham Close
Woodham Park
Woodham Road
Woodlands Road
Woodstock Close
Wye Close
Wynd Street
Wyndham Street
Y Rhodfa
York Place
"""
streets = streets.splitlines()
ss = []
for s in streets:
s = s.replace(' Avenue', '')
s = s.replace(' Close', '')
s = s.replace(' Court', '')
s = s.replace(' Crescent', '')
s = s.replace(' Drive', '')
s = s.replace(' Lane', '')
s = s.replace(' Park', '')
s = s.replace(' Place', '')
s = s.replace(' Rise', '')
s = s.replace(' Road', '')
s = s.replace(' Square', '')
s = s.replace(' Street', '')
s = s.replace(' Terrace', '')
s = s.replace(' Walk', '')
s = s.replace(' Way', '')
s = s.replace('Clos ', '')
s = s.replace('Cwrt ', '')
s = s.replace('Ffordd ', '')
s = s.replace('Heol ', '')
ss.append(s)
print ('Spaced streets - candidates for removal?')
for s in ss:
if len(s.split()) > 1:
print(s)
streets = ss
#lower case it all
streets = [s.lower() for s in streets]
# remove "'"
streets = [s.replace("'",'') for s in streets]
#remove terminal spaces
streets = [s.strip() for s in streets]
# make unique
streets = set(streets)
#remove empty
streets = [s for s in streets if s]
#examine terminal letters available
firsts = [s[0] for s in streets]
ff = {}
for f in firsts:
ff.setdefault(f, 0)
ff[f] += 1
lasts = [s[-1:] for s in streets]
ll = {}
for l in lasts:
ll.setdefault(l, 0)
ll[l] += 1
# list the frequency of terminal letters.
print(sorted(ff.items()))
print(sorted(ll.items()))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment